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 相关文章推荐
PHP4之真OO
Oct 09 PHP
PHP $_FILES函数详解
Mar 09 PHP
php学习之数据类型之间的转换代码
May 29 PHP
php 字符串替换的方法
Jan 10 PHP
PHP编程中的__clone()方法使用详解
Nov 27 PHP
php设计模式之单例模式代码
Jun 11 PHP
Yii安装与使用Excel扩展的方法
Jul 13 PHP
PHP实现mysqli批量执行多条语句的方法示例
Jul 22 PHP
PHP根据树的前序遍历和中序遍历构造树并输出后序遍历的方法
Nov 10 PHP
PHP实现的curl批量请求操作示例
Jun 06 PHP
ThinkPHP5框架实现简单的批量查询功能示例
Jun 07 PHP
总结PHP代码规范、流程规范、git规范
Jun 18 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分页思路以及在ZF中的使用
2012/05/30 PHP
PHP小教程之实现链表
2014/06/09 PHP
php二维数组合并及去重复的方法
2015/03/04 PHP
jQuery+php简单实现全选删除的方法
2016/11/28 PHP
PHP count_chars()函数讲解
2019/02/14 PHP
php的命名空间与自动加载实现方法
2019/08/25 PHP
用Javascript实现UTF8编码转换成gb2312编码
2006/12/22 Javascript
基于jquery的模态div层弹出效果
2010/08/21 Javascript
弹出层之1:JQuery.Boxy (一) 使用介绍
2011/10/06 Javascript
JS分页控件 可用于无刷新分页
2013/07/23 Javascript
点击按钮自动加关注的代码(sina微博/QQ空间/人人网/腾讯微博)
2014/01/02 Javascript
jQuery实现折线图的方法
2015/02/28 Javascript
理解javascript对象继承
2016/04/17 Javascript
js精准的倒计时函数分享
2016/06/29 Javascript
javascript如何创建对象
2016/08/29 Javascript
原生JS实现匀速图片轮播动画
2016/10/18 Javascript
jquery滚动条插件(可以自定义)
2016/12/11 Javascript
vue2过滤器模糊查询方法
2018/09/16 Javascript
实例分析Array.from(arr)与[...arr]到底有何不同
2019/04/09 Javascript
详解一个小实例理解js原型和继承
2019/04/24 Javascript
深入浅出vue图片路径的实现
2019/09/04 Javascript
[02:23]1个至宝=115个英雄特效 最“绿”至宝拉比克“魔导师密钥”登场
2018/12/29 DOTA
Python中的深拷贝和浅拷贝详解
2015/06/03 Python
Python numpy 提取矩阵的某一行或某一列的实例
2018/04/03 Python
python实现修改固定模式的字符串内容操作示例
2019/12/30 Python
python+opencv实现移动侦测(帧差法)
2020/03/20 Python
Python3 pickle对象串行化代码实例解析
2020/03/23 Python
HTML5 Canvas 绘图——使用 Canvas 绘制图形图文教程 使用html5 canvas 绘制精美的图
2015/08/31 HTML / CSS
网友共享的几个面试题关于Java和Unix等方面的
2016/09/08 面试题
如何执行一个shell程序
2012/11/23 面试题
安康杯竞赛活动总结
2014/05/05 职场文书
质量承诺书怎么写
2014/05/24 职场文书
六五普法先进个人主要事迹材料
2015/11/03 职场文书
2016年学校爱国卫生月活动总结
2016/04/06 职场文书
python实现简单的聊天小程序
2021/07/07 Python
JavaWeb 入门篇(3)ServletContext 详解 具体应用
2021/07/16 Java/Android