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中使用Oracle数据库(6)
Oct 09 PHP
php xml留言板 xml存储数据的简单例子
Aug 24 PHP
thinkphp3.0 模板中函数的使用
Nov 13 PHP
PHP 获取远程文件大小的3种解决方法
Jul 11 PHP
PHP实现支持GET,POST,Multipart/form-data的HTTP请求类
Sep 24 PHP
php使用glob函数快速查询指定目录文件的方法
Nov 15 PHP
CodeIgniter框架常见用法工作总结
Mar 16 PHP
thinkphp 字母函数详解T/I/N/D/M/A/R/U
Apr 03 PHP
php实现的pdo公共类定义与用法示例
Jul 19 PHP
PHP获取文件扩展名的常用方法小结【五种方式】
Apr 27 PHP
php实现数组中出现次数超过一半的数字的统计方法
Oct 14 PHP
PHP Ajax跨域问题解决方案代码实例
Aug 01 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
德生PL990的分析评价
2021/03/02 无线电
php高级编程-函数-郑阿奇
2011/07/04 PHP
CI框架中site_url()和base_url()的区别
2015/01/07 PHP
Tab页界面,用jQuery及Ajax技术实现
2009/09/21 Javascript
JavaScript中的prototype使用说明
2010/04/13 Javascript
js动态创建表格,删除行列的小例子
2013/07/20 Javascript
$.get获取一个文件的内容示例代码
2013/09/11 Javascript
jQuery实现在textarea指定位置插入字符或表情的方法
2015/03/11 Javascript
JSON字符串转JSON对象
2015/07/31 Javascript
jquery实现仿新浪微博带动画效果弹出层代码(可关闭、可拖动)
2015/10/12 Javascript
JavaScript实现复制或剪切内容到剪贴板功能的方法
2016/05/23 Javascript
值得学习的bootstrap fileinput文件上传工具
2016/11/08 Javascript
JS实现重新加载当前页面
2016/11/29 Javascript
bootstrap表单按回车会自动刷新页面的解决办法
2017/03/08 Javascript
JavaScript中使用Async实现异步控制
2017/08/15 Javascript
Vue中使用Sortable的示例代码
2018/04/07 Javascript
vue2.0 实现导航守卫的具体用法(路由守卫)
2018/05/17 Javascript
JavaScript禁用右键单击优缺点分析
2019/01/20 Javascript
Python实现遍历windows所有窗口并输出窗口标题的方法
2015/03/13 Python
Python中将字典转换为列表的方法
2016/09/21 Python
python设置环境变量的作用和实例
2019/07/09 Python
Django之使用内置函数和celery发邮件的方法示例
2019/09/16 Python
python GUI库图形界面开发之PyQt5树形结构控件QTreeWidget详细使用方法与实例
2020/03/02 Python
如何提高python 中for循环的效率
2020/04/15 Python
如何实现在jupyter notebook中播放视频(不停地展示图片)
2020/04/23 Python
python filecmp.dircmp实现递归比对两个目录的方法
2020/05/22 Python
在HTML5中使用MathML数学公式的简单讲解
2016/02/19 HTML / CSS
如何给HTML标签中的文本设置修饰线
2019/11/18 HTML / CSS
Madewell澳大利亚官方网站:美国休闲服饰品牌
2019/07/18 全球购物
护理实习自我鉴定
2013/12/14 职场文书
抄作业检讨书
2014/02/17 职场文书
司机职责范本
2014/03/08 职场文书
工资收入证明
2014/10/07 职场文书
街道社区活动报告
2015/02/05 职场文书
AJAX学习笔记
2021/05/18 Javascript
Rhit高效可视化Nginx日志查看工具
2021/11/01 Servers