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 相关文章推荐
第五节 克隆 [5]
Oct 09 PHP
php mysql数据库操作类
Jun 04 PHP
简单的PHP缓存设计实现代码
Sep 30 PHP
Yii2使用小技巧之通过 Composer 添加 FontAwesome 字体资源
Jun 22 PHP
PHP缓存机制Output Control详解
Jul 14 PHP
php中使用array_filter()函数过滤空数组的实现代码
Aug 19 PHP
PHP抓取网页、解析HTML常用的方法总结
Jul 01 PHP
php生成过去100年下拉列表的方法
Jul 20 PHP
php实现word转html的方法
Jan 22 PHP
PHP用户验证和标签推荐的简单使用
Oct 31 PHP
redis+php实现微博(二)发布与关注功能详解
Sep 23 PHP
php实现的证件照换底色功能示例【人像抠图/换背景图】
May 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抓取https的内容的代码
2010/04/06 PHP
如何用C语言编写PHP扩展的详解
2013/06/13 PHP
PHP+ajax分页实例简析
2015/12/07 PHP
JQuery 国际象棋棋盘 实现代码
2009/06/26 Javascript
jquery怎样实现ajax联动框(一)
2013/03/08 Javascript
JavaScript中奇葩的假值示例应用
2014/03/11 Javascript
javascript复制粘贴与clipboardData的使用
2014/10/16 Javascript
NodeJS制作爬虫全过程
2014/12/22 NodeJs
jquery操作复选框checkbox的方法汇总
2015/02/05 Javascript
js为什么不能正确处理小数运算?
2015/12/29 Javascript
Bootstrap中CSS的使用方法
2016/02/17 Javascript
浅谈angularjs module返回对象的坑(推荐)
2016/10/21 Javascript
浅谈MVC+EF easyui dataGrid 动态加载分页表格
2016/11/10 Javascript
iphone刘海屏页面适配方法
2019/05/07 Javascript
基于vue-cli 路由 实现类似tab切换效果(vue 2.0)
2019/05/08 Javascript
three.js利用卷积法如何实现物体描边效果
2019/11/27 Javascript
echarts实现获取datazoom的起始值(包括x轴和y轴)
2020/07/20 Javascript
Python对数据进行插值和下采样的方法
2018/07/03 Python
Python使用folium excel绘制point
2019/01/03 Python
不归路系列:Python入门之旅-一定要注意缩进!!!(推荐)
2019/04/16 Python
python使用Matplotlib改变坐标轴的默认位置
2019/10/18 Python
python实现画循环圆
2019/11/23 Python
解决Python使用列表副本的问题
2019/12/19 Python
python使用HTMLTestRunner导出饼图分析报告的方法
2019/12/30 Python
python-docx文件定位读取过程(尝试替换)
2020/02/13 Python
Python 的 __str__ 和 __repr__ 方法对比
2020/09/02 Python
幼儿师范毕业生自荐信
2013/11/09 职场文书
小学生打架检讨书
2014/01/26 职场文书
保险公司晨会主持词
2014/03/22 职场文书
小学生纪念九一八事变演讲稿
2014/09/14 职场文书
女生抽烟检讨书
2014/10/05 职场文书
四风查摆问题及整改措施
2014/10/10 职场文书
学习党的群众路线教育实践活动剖析材料
2014/10/13 职场文书
2014年服务员工作总结
2014/11/18 职场文书
电影复兴之路观后感
2015/06/02 职场文书
pytorch实现ResNet结构的实例代码
2021/05/17 Python