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 注释规范
Mar 29 PHP
PHP Directory 函数的详解
Mar 07 PHP
解析PHP中数组元素升序、降序以及重新排序的函数
Jun 20 PHP
PHP伪造来源HTTP_REFERER的方法实例详解
Jul 06 PHP
PHP+jQuery+Ajax实现分页效果 jPaginate插件的应用
Oct 09 PHP
PHP远程调试之XDEBUG
Dec 29 PHP
php的闭包(Closure)匿名函数初探
Feb 14 PHP
ThinkPHP3.2.3实现分页的方法详解
Jun 03 PHP
thinkPHP框架可添加js事件的分页类customPage.class.php完整实例
Mar 16 PHP
php面向对象之反射功能与用法分析
Mar 29 PHP
PHP小白必须要知道的php基础知识(超实用)
Oct 10 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
德生BCL3000的电路分析和打磨
2021/03/02 无线电
PHP自带函数给数字或字符串自动补齐位数
2014/07/29 PHP
一个图片地址分解程序(用于PHP小偷程序)
2014/08/23 PHP
PHP实现生成模糊图片的方法示例
2017/12/21 PHP
ThinkPHP5.0框架实现切换数据库的方法分析
2019/10/30 PHP
PHP常用字符串输出方法分析(echo,print,printf及sprintf)
2021/03/09 PHP
JavaScript实用技巧(一)
2010/08/16 Javascript
深入JavaScript高级程序设计之对象、数组(栈方法,队列方法,重排序方法,迭代方法)
2015/12/01 Javascript
Angularjs上传图片实例详解
2017/08/06 Javascript
Javascript中的getter和setter初识
2017/08/17 Javascript
Angular2 组件交互实例详解
2017/08/24 Javascript
使用vue-router设置每个页面的title方法
2018/02/11 Javascript
vue组件文档(.md)中如何自动导入示例(.vue)详解
2019/01/25 Javascript
微信小程序获取当前位置和城市名
2019/11/13 Javascript
如何在vue项目中嵌入jsp页面的方法(2种)
2020/02/06 Javascript
小程序如何定位所在城市及发起周边搜索
2020/02/11 Javascript
vue 添加和编辑用同一个表单,el-form表单提交后清空表单数据操作
2020/08/03 Javascript
python实现带验证码网站的自动登陆实现代码
2015/01/12 Python
Python Numpy 数组的初始化和基本操作
2018/03/13 Python
Python实现找出数组中第2大数字的方法示例
2018/03/26 Python
python 显示数组全部元素的方法
2018/04/19 Python
python关于矩阵重复赋值覆盖问题的解决方法
2019/07/19 Python
Pycharm远程调试原理及具体配置详解
2019/08/08 Python
django重新生成数据库中的某张表方法
2019/08/28 Python
python3 assert 断言的使用详解 (区别于python2)
2019/11/27 Python
Python优秀开源项目Rich源码解析的流程分析
2020/07/06 Python
Selenium及python实现滚动操作多种方法
2020/07/21 Python
欧洲顶级的童装奢侈品购物网站:Bambini Fashion(面向全球)
2018/04/24 全球购物
输入N,打印N*N矩阵
2012/02/20 面试题
百度吧主申请感言
2014/01/12 职场文书
社会实践活动总结报告
2014/04/29 职场文书
兵马俑导游词
2015/02/02 职场文书
运动会200米广播稿
2015/08/19 职场文书
golang 实现Location跳转方式
2021/05/02 Golang
React配置子路由的实现
2021/06/03 Javascript
JS数组去重详情
2021/11/07 Javascript