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下一个非常全面获取图象信息的函数
Nov 20 PHP
PHP采集相关教程之一 CURL函数库
Feb 15 PHP
php学习之 循环结构实现代码
Jun 09 PHP
phpstrom使用xdebug配置方法
Dec 17 PHP
深入理解PHP内核(一)
Nov 10 PHP
Ajax实现对静态页面的文章访问统计功能示例
Oct 10 PHP
thinkPHP简单导入和使用阿里云OSSsdk的方法
Mar 15 PHP
为何说PHP引用是个坑,要慎用
Apr 02 PHP
PHPMAILER实现PHP发邮件功能
Apr 18 PHP
PHP Include文件实例讲解
Feb 15 PHP
PHP htmlspecialchars()函数用法与实例讲解
Mar 08 PHP
php反序列化长度变化尾部字符串逃逸(0CTF-2016-piapiapia)
Feb 15 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
使用无限生命期Session的方法
2006/10/09 PHP
PHP中isset、empty的用法与区别示例详解
2020/11/05 PHP
jquery 插件 任意位置浮动固定层
2008/12/25 Javascript
Ext对基本类型的扩展 ext,extjs,format
2010/12/25 Javascript
javascript中的作用域scope介绍
2010/12/28 Javascript
iframe窗口高度自适应的实现方法
2014/01/08 Javascript
fckeditor粘贴Word时弹出窗口取消的方法
2014/10/30 Javascript
jQuery实现响应鼠标背景变化的动态菜单效果代码
2015/08/27 Javascript
JavaScript转换与解析JSON方法实例详解
2015/11/24 Javascript
仅30行代码实现Javascript中的MVC
2016/02/15 Javascript
asp.net+jquery.form实现图片异步上传的方法(附jquery.form.js下载)
2016/05/05 Javascript
BootStrap 动态添加验证项和取消验证项的实现方法
2016/09/28 Javascript
JS实现的简易拖放效果示例
2016/12/29 Javascript
一步步教你利用webpack如何搭一个vue脚手架(超详细讲解和注释)
2018/01/08 Javascript
深入浅析javascript函数中with
2018/10/28 Javascript
JS立即执行函数功能与用法分析
2019/01/15 Javascript
JQuery样式与属性设置方法分析
2019/12/07 jQuery
javascript用defineProperty实现简单的双向绑定方法
2020/04/03 Javascript
简单的Python2.7编程初学经验总结
2015/04/01 Python
Python中Django 后台自定义表单控件
2017/03/28 Python
浅谈Python中的zip()与*zip()函数详解
2018/02/24 Python
Redis使用watch完成秒杀抢购功能的代码
2018/05/07 Python
python求最大值,不使用内置函数的实现方法
2019/07/09 Python
python实现知乎高颜值图片爬取
2019/08/12 Python
调用其他python脚本文件里面的类和方法过程解析
2019/11/15 Python
html5版canvas自由拼图实例
2014/10/15 HTML / CSS
Tea Collection官网:一家位于旧金山的童装公司
2020/08/07 全球购物
高级工程师岗位职责
2013/12/15 职场文书
客户表扬信范文
2014/01/10 职场文书
企业车辆管理制度
2014/01/24 职场文书
读书活动实施方案
2014/03/10 职场文书
出国留学担保书
2014/05/20 职场文书
中学教师师德师风演讲稿
2014/08/22 职场文书
2014-2015学年工作总结
2014/11/27 职场文书
python 实现定时任务的四种方式
2021/04/01 Python
MySQL数据库之存储过程 procedure
2022/06/16 MySQL