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的历史和优缺点
Oct 09 PHP
PHP 杂谈《重构-改善既有代码的设计》之三 重新组织数据
Apr 09 PHP
PHP 观察者模式的实现代码
May 10 PHP
php读取3389的脚本
May 06 PHP
ThinkPHP公共配置文件与各自项目中配置文件组合的方法
Nov 24 PHP
在Windows系统下使用PHP生成Word文档的教程
Jul 03 PHP
PHP代码实现爬虫记录――超管用
Jul 31 PHP
使用Huagepage和PGO来提升PHP7的执行性能
Nov 30 PHP
PHP使用strstr()函数获取指定字符串后所有字符的方法
Jan 07 PHP
php unicode编码和字符串互转的方法
Aug 12 PHP
thinkPHP显示不出验证码的原因与解决方法分析
May 20 PHP
ThinkPHP实现登录退出功能
Jun 29 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
php中记录用户访问过的产品,在cookie记录产品id,id取得产品信息
2011/05/04 PHP
php实现singleton()单例模式实例
2014/11/06 PHP
PHP下SSL加密解密、验证、签名方法(很简单)
2020/06/28 PHP
php中使用GD库做验证码
2016/03/31 PHP
thinkphp3.x中cookie方法的用法分析
2016/05/19 PHP
ThinkPHP的SAE开发相关注意事项详解
2016/10/09 PHP
laravel 输出最后执行sql 附:whereIn的使用方法
2019/10/10 PHP
PHP的图像处理实例小结【文字水印、图片水印、压缩图像等】
2019/12/20 PHP
PJ Blog修改-禁止复制的代码和方法
2006/10/25 Javascript
Javascript Math ceil()、floor()、round()三个函数的区别
2010/03/09 Javascript
js与jquery实时监听输入框值的oninput与onpropertychange方法
2015/02/05 Javascript
nodejs实现获取当前url地址及url各种参数值
2015/06/25 NodeJs
AngularJS中update两次出现$promise属性无法识别的解决方法
2017/01/05 Javascript
JS中传递参数的几种不同方法比较
2017/01/20 Javascript
jQuery实现frame之间互通的方法
2017/06/26 jQuery
vue-quill-editor富文本编辑器简单使用方法
2018/09/21 Javascript
Vue源码解析之数据响应系统的使用
2019/04/24 Javascript
如何在vue项目中嵌入jsp页面的方法(2种)
2020/02/06 Javascript
JavaScript冒泡算法原理与实现方法深入理解
2020/06/04 Javascript
[07:38]2014DOTA2国际邀请赛 Newbee顺利挺进胜者组赛后专访
2014/07/15 DOTA
使用Django Form解决表单数据无法动态刷新的两种方法
2017/07/14 Python
Python中正反斜杠(‘/’和‘\’)的意义与用法
2019/08/12 Python
python 调用pyautogui 实时获取鼠标的位置、移动鼠标的方法
2019/08/27 Python
python的slice notation的特殊用法详解
2019/12/27 Python
使用python的pyplot绘制函数实例
2020/02/13 Python
用python进行视频剪辑
2020/11/02 Python
你在项目中用到了xml技术的哪些方面?如何实现的?
2014/01/26 面试题
服装机修工岗位职责
2013/12/26 职场文书
管事部库房保管员岗位职责
2014/02/21 职场文书
镇政府副镇长群众路线专题民主生活会对照检查材料
2014/09/19 职场文书
有子女的离婚协议书怎么写(范本)
2014/09/29 职场文书
教师作风建设剖析材料
2014/10/11 职场文书
大国崛起日本观后感
2015/06/02 职场文书
Redis 的查询很快的原因解析及Redis 如何保证查询的高效
2022/03/16 Redis
Shell脚本一键安装Nginx服务自定义Nginx版本
2022/03/20 Servers
Vite + React从零开始搭建一个开源组件库
2022/06/25 Javascript