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 相关文章推荐
15种PHP Encoder的比较
Mar 06 PHP
PHP生成指定长度随机数最简洁的方法
Jul 14 PHP
推荐几款用 Sublime Text 开发 Laravel 所用到的插件
Oct 30 PHP
Laravel 4 初级教程之视图、命名空间、路由
Oct 30 PHP
php上传图片并压缩的实现方法
Dec 22 PHP
PHP封装函数实现生成随机的字符串验证码
Jan 24 PHP
PHP面向对象程序设计之多态性的应用示例
Dec 19 PHP
php的扩展写法总结
May 14 PHP
thinkphp5框架实现数据库读取的数据转换成json格式示例
Oct 10 PHP
浅析PHP中的 inet_pton 网络函数
Dec 16 PHP
php的无刷新操作实现方法分析
Feb 28 PHP
php7 参数、整形及字符串处理机制修改实例分析
May 25 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下读取文本文件的代码
2008/07/02 PHP
PHP读取文件并可支持远程文件的代码分享
2012/10/03 PHP
php判断字符串在另一个字符串位置的方法
2014/02/27 PHP
PHP实现使用优酷土豆视频地址获取swf播放器分享地址
2014/06/05 PHP
php实现读取手机客户端浏览器的类
2015/01/09 PHP
php根据某字段对多维数组进行排序的方法
2015/03/07 PHP
php中__toString()方法用法示例
2016/12/07 PHP
php使用scandir()函数扫描指定目录下所有文件示例
2019/06/08 PHP
修改jquery.lazyload.js实现页面延迟载入
2010/12/22 Javascript
用原生js做个简单的滑动效果的回到顶部
2014/10/15 Javascript
jquery中有哪些api jQuery主要API
2017/11/20 jQuery
bootstrap treeview 树形菜单带复选框及级联选择功能
2018/06/08 Javascript
产制造追溯系统之通过微信小程序实现移动端报表平台
2019/06/03 Javascript
node.js中module模块的功能理解与用法实例分析
2020/02/14 Javascript
swiper自定义分页器的样式
2020/09/14 Javascript
javascript this指向相关问题及改变方法
2020/11/19 Javascript
微信小程序之高德地图多点路线规划过程示例详解
2021/01/18 Javascript
[11:01]2014DOTA2西雅图邀请赛 冷冷带你探秘威斯汀
2014/07/08 DOTA
Python入门教程之if语句的用法
2015/05/14 Python
python验证码识别教程之利用投影法、连通域法分割图片
2018/06/04 Python
Jupyter notebook在mac:linux上的配置和远程访问的方法
2019/01/14 Python
python实现得到当前登录用户信息的方法
2019/06/21 Python
Pytorch之parameters的使用
2019/12/31 Python
python中判断文件结束符的具体方法
2020/08/04 Python
意大利香水和彩妆护肤品购物网站:Ditano
2017/08/13 全球购物
澳大利亚领先的在线美容商店:Facial Co
2017/10/22 全球购物
NFL加拿大官方网上商店:NHLShop.ca
2019/03/12 全球购物
附答案的Java面试题
2012/11/19 面试题
留学自荐信
2013/10/10 职场文书
挂职自我鉴定
2014/02/26 职场文书
《守株待兔》教学反思
2014/03/01 职场文书
节水标语大全
2014/06/11 职场文书
办公用房租赁协议书
2014/11/29 职场文书
求职简历自我评价范文
2015/03/10 职场文书
PyCharm 安装与使用配置教程(windows,mac通用)
2021/05/12 Python
Redis中缓存穿透/击穿/雪崩问题和解决方法
2021/12/04 Redis