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 相关文章推荐
一个ORACLE分页程序,挺实用的.
Oct 09 PHP
实时抓取YAHOO股票报价的代码
Oct 09 PHP
php 论坛采集程序 模拟登陆,抓取页面 实现代码
Jul 09 PHP
ThinkPHP的I方法使用详解
Jun 18 PHP
Yii使用CLinkPager分页实例详解
Jul 23 PHP
PHP编译安装中遇到的两个错误和解决方法
Aug 20 PHP
PHP多态代码实例
Jun 26 PHP
php生成静态html页面的方法(2种方法)
Sep 14 PHP
PHP中file_exists使用中遇到的问题小结
Apr 05 PHP
PHP中类型转换 ,常量,系统常量,魔术常量的详解
Oct 26 PHP
PHP中的empty、isset、isnull的区别与使用实例
Mar 22 PHP
PHP实现简单登录界面
Oct 23 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
coreseek 搜索英文的问题详解
2013/06/08 PHP
CURL状态码列表(详细)
2013/06/27 PHP
thinkphp模板赋值与替换实例简述
2014/11/24 PHP
php+mysqli使用面向对象方式更新数据库实例
2015/01/29 PHP
PHP-FPM运行状态的实时查看及监控详解
2016/11/18 PHP
PHP数据库处理封装类实例
2016/12/24 PHP
PHP实现通过文本文件统计页面访问量功能示例
2019/02/13 PHP
JS仿百度自动下拉框模糊匹配提示
2016/07/25 Javascript
第一次动手实现bootstrap table分页效果
2016/09/22 Javascript
bootstrap——bootstrapTable实现隐藏列的示例
2017/01/14 Javascript
JavaScript关联数组用法分析【概念、定义、遍历】
2017/03/15 Javascript
vue2.0中goods选购栏滚动算法的实现代码
2017/05/17 Javascript
详解node child_process模块学习笔记
2018/01/24 Javascript
在vscode中统一vue编码风格的方法
2018/02/22 Javascript
JS弹窗 JS弹出DIV并使整个页面背景变暗功能的实现代码
2018/04/21 Javascript
jquery实现拖拽添加元素功能
2020/12/01 jQuery
[04:09]2014DOTA2国际邀请赛Ti西雅图 历届冠军相继出局 BBC综述今日比赛
2014/07/20 DOTA
解决pycharm的Python console不能调试当前程序的问题
2019/01/20 Python
Python从函数参数类型引出元组实例分析
2019/05/28 Python
python登录WeChat 实现自动回复实例详解
2019/05/28 Python
Python学习笔记之Break和Continue用法分析
2019/08/14 Python
使用tensorflow显示pb模型的所有网络结点方式
2020/01/23 Python
Python实现密钥密码(加解密)实例详解
2020/04/26 Python
Python tkinter制作单机五子棋游戏
2020/09/14 Python
CSS3中的元素过渡属性transition示例详解
2016/11/30 HTML / CSS
巴西最大的体育用品商城:Netshoes巴西
2016/11/29 全球购物
英国第一职业高尔夫商店:Clickgolf.co.uk
2020/11/18 全球购物
linux面试题参考答案(7)
2012/10/29 面试题
short s1 = 1; s1 = s1 + 1;有什么错? short s1 = 1; s1 += 1;有什么错?
2014/09/26 面试题
医药专业应届毕业生求职信范文
2014/01/01 职场文书
客服部工作职责范本
2014/02/14 职场文书
工作分析计划书
2014/04/30 职场文书
起诉离婚协议书样本
2014/11/25 职场文书
幼儿园庆六一主持词
2015/06/30 职场文书
2016感恩父亲节主题广播稿
2015/12/18 职场文书
带你彻底理解JavaScript中的原型对象
2021/04/14 Javascript