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 相关文章推荐
3
Oct 09 PHP
php zlib压缩和解压缩swf文件的代码
Dec 30 PHP
php的urlencode()URL编码函数浅析
Aug 09 PHP
php在window iis的莫名问题的测试方法
May 14 PHP
PHP的error_reporting错误级别变量对照表
Jul 08 PHP
php项目中百度 UEditor 简单安装调试和调用
Jul 15 PHP
详解PHP中cookie和session的区别及cookie和session用法小结
Jun 12 PHP
thinkPHP分页功能实例详解
May 05 PHP
PHP实现的堆排序算法详解
Aug 17 PHP
php封装单文件上传到数据库(路径)
Oct 15 PHP
使用ucenter实现多站点同步登录的讲解
Mar 21 PHP
PHP利用DWZ.CN服务生成短网址
Aug 11 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
用PHPdig打造属于你自己的Google[图文教程]
2007/02/14 PHP
php 注释规范
2012/03/29 PHP
thinkPHP利用ajax异步上传图片并显示、删除的示例
2018/09/26 PHP
Laravel Eloquent分表方法并使用模型关联的实现
2019/11/25 PHP
在JavaScript中,为什么要尽可能使用局部变量?
2009/04/06 Javascript
javascript 鼠标滚轮事件
2009/04/09 Javascript
JS+JSP checkBox 全选具体实现
2014/01/02 Javascript
基于JavaScript实现移动端点击图片查看大图点击大图隐藏
2015/11/04 Javascript
详解nodejs与javascript中的aes加密
2016/05/22 NodeJs
jQuery实现手机版页面翻页效果的简单实例
2016/10/05 Javascript
Vue单文件组件的如何使用方式介绍
2017/07/28 Javascript
无限循环轮播图之运动框架(原生JS实现)
2017/10/01 Javascript
pace.js和NProgress.js两个加载进度插件的一点小总结
2018/01/31 Javascript
Vue.extend实现挂载到实例上的方法
2019/05/01 Javascript
vue+element tabs选项卡分页效果
2020/06/29 Javascript
vue-cli设置publicPath小记
2020/04/14 Javascript
[00:34]DOTA2上海特级锦标赛 Spirit战队宣传片
2016/03/04 DOTA
[04:40]2016国际邀请赛中国区预选赛全程TOP10镜头集锦
2016/07/01 DOTA
[04:32]玩具屠夫中文语音节选
2020/08/23 DOTA
python在windows下实现ping操作并接收返回信息的方法
2015/03/20 Python
python验证码识别的示例代码
2017/09/21 Python
Python格式化输出字符串方法小结【%与format】
2018/10/29 Python
在python中使用xlrd获取合并单元格的方法
2018/12/26 Python
python字典嵌套字典的情况下找到某个key的value详解
2019/07/10 Python
pandas 对日期类型数据的处理方法详解
2019/08/08 Python
Python使用itchat模块实现群聊转发,自动回复功能示例
2019/08/26 Python
Python3.7在anaconda里面使用IDLE编译器的步骤详解
2020/04/29 Python
Liu Jo西班牙官网:意大利服装品牌
2019/09/11 全球购物
介绍Ibatis的核心类
2013/11/18 面试题
质检部岗位职责
2013/11/11 职场文书
毕业生个人投资创业计划书
2014/01/04 职场文书
超市促销活动总结
2014/07/01 职场文书
社区志愿服务活动感想
2015/08/07 职场文书
2016年小学生教师节广播稿
2015/12/18 职场文书
解决Mysql报错 Table 'mysql.user' doesn't exist
2022/05/06 MySQL
css让页脚保持在底部位置的四种方案
2022/07/23 HTML / CSS