PHP实现二维数组中的查找算法小结


Posted in PHP onJune 09, 2018

本文实例讲述了PHP实现二维数组中的查找算法。分享给大家供大家参考,具体如下:

方法1:silu从左下角最后一行的第一个元素开始,遍历。如果小于target 则遍历该行的所有元素,找到结束。如果大于继续往上一行进行。等于直接结束。

<?php
function Find($target, $array)
{
  $m_y = count($array['0']);
  $m_x = count($array);
  for($i=$m_x-1;$i>=0;$i--){
    if($array[$i]['0'] < $target){
      for($j=1;$j<$m_y;$j++){
        if($array[$i][$j] == $target){
          return 1;
          break;
        }
      }
    }
    if($array[$i]['0'] == $target){
      return 1;
      break;
    }
  }
}

方法2

function Find($target, $array)
{
  $m_y = count($array['0']);
  $m_x = count($array);
  $i = 0;
    for($i =$m_x-1,$j=0;$i>=0&&$j<$m_y;){
      if($array[$i][$j]<$target){
        $j++;
        continue;
      }
      if($array[$i][$j]>$target){
        $i--;
        continue;
      }
      if($array[$i][$j] == $target){
        return 1;
      }
    }
}

方法3:

function Find($target, $array)
{
  $m_y = count($array['0']);
  $m_x = count($array);
  $i = $m_x-1;
  $j = 0;
  while(1){
    if($array[$i][$j]<$target){
      $j++;
    }
    if($array[$i][$j]>$target){
      $i--;
    }
    if($array[$i][$j] == $target){
      return 1;
    }
    if($i == 0||$j == $m_y-1){
      return 0;
    }
  }
}

希望本文所述对大家PHP程序设计有所帮助。

PHP 相关文章推荐
用php+mysql一个名片库程序
Oct 09 PHP
AJAX for PHP简单表数据查询实例
Jan 02 PHP
PHP中调用ASP.NET的WebService的代码
Apr 22 PHP
php ios推送(代码)
Jul 01 PHP
smarty简单入门实例
Nov 28 PHP
浅谈PHP中的
Apr 23 PHP
详解yii2使用多个数据库的案例
Jun 16 PHP
PHP简单实现模拟登陆功能示例
Sep 15 PHP
php工具型代码之印章抠图
Jul 18 PHP
php实现小程序支付完整版
Oct 09 PHP
PHP多进程通信-消息队列使用
Mar 08 PHP
PHP tp5中使用原生sql查询代码实例
Oct 28 PHP
PHP实现链表的定义与反转功能示例
Jun 09 #PHP
thinkPHP框架实现的无限回复评论功能示例
Jun 09 #PHP
ThinkPHP5框架实现简单的批量查询功能示例
Jun 07 #PHP
PHP 实现手机端APP支付宝支付功能
Jun 07 #PHP
Laravel程序架构设计思路之使用动作类
Jun 07 #PHP
laravel手动创建数组分页的实现代码
Jun 07 #PHP
thinkPHP框架实现生成条形码的方法示例
Jun 06 #PHP
You might like
PHP5 操作MySQL数据库基础代码
2009/09/29 PHP
单台服务器的PHP进程之间实现共享内存的方法
2014/06/13 PHP
PHP+MYSQL会员系统的开发实例教程
2014/08/23 PHP
php+jQuery+Ajax简单实现页面异步刷新
2016/08/08 PHP
thinkphp5 migrate数据库迁移工具
2018/02/20 PHP
使用laravel和ajax实现整个页面无刷新的操作方法
2019/10/03 PHP
用cssText批量修改样式
2009/08/29 Javascript
js中单引号与双引号冲突问题解决方法
2013/10/04 Javascript
js二维数组排序的简单示例代码
2014/01/24 Javascript
JavaScript每天定时更换皮肤样式的方法
2015/07/01 Javascript
谈谈JSON对象和字符串之间的相互转换JSON.stringify(obj)和JSON.parse(string)
2015/10/01 Javascript
信息页文内画中画广告js实现代码(文中加载广告方式)
2016/01/03 Javascript
js控件Kindeditor实现图片自动上传功能
2020/07/20 Javascript
js实现适配不同的屏幕大小
2017/04/10 Javascript
vue实现axios图片上传功能
2019/08/20 Javascript
layui表格设计以及数据初始化详解
2019/10/26 Javascript
javascript(基于jQuery)实现鼠标获取选中的文字示例【测试可用】
2019/10/26 jQuery
Javascript异步编程async实现过程详解
2020/04/02 Javascript
js实现飞机大战小游戏
2020/08/26 Javascript
python使用socket连接远程服务器的方法
2015/04/29 Python
详解在Python程序中使用Cookie的教程
2015/04/30 Python
讲解Python中的标识运算符
2015/05/14 Python
python抓取网页中链接的静态图片
2018/01/29 Python
在python中pandas读文件,有中文字符的方法
2018/12/12 Python
python实现控制台打印的方法
2019/01/12 Python
详解Python连接MySQL数据库的多种方式
2019/04/16 Python
在django中使用post方法时,需要增加csrftoken的例子
2020/03/13 Python
Python多线程Threading、子线程与守护线程实例详解
2020/03/24 Python
CSS3中:nth-child和:nth-of-type的区别深入理解
2014/03/10 HTML / CSS
Adobe Html5 Extension开发初体验图文教程
2017/11/14 HTML / CSS
Invicta手表官方商店:百年制表历史的瑞士腕表品牌
2019/09/26 全球购物
一篇.NET面试题
2014/09/29 面试题
营销总经理的岗位职责
2013/12/15 职场文书
写求职信有什么意义
2014/02/17 职场文书
捐资助学倡议书
2014/04/15 职场文书
python xlwt模块的使用解析
2021/04/13 Python