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 相关文章推荐
实例(Smarty+FCKeditor新闻系统)
Jan 02 PHP
PHP和Mysqlweb应用开发核心技术 第1部分 Php基础-1 开始了解php
Jul 03 PHP
让PHP显示Facebook的粉丝数量方法
Jan 08 PHP
PHP引用(&amp;)各种使用方法实例详解
Mar 20 PHP
PHP SPL标准库之数据结构栈(SplStack)介绍
May 12 PHP
使用ltrace工具跟踪PHP库函数调用的方法
Apr 25 PHP
Linux php 中文乱码的快速解决方法
May 13 PHP
PHP控制前台弹出对话框的实现方法
Aug 21 PHP
/etc/php-fpm.d/www.conf 配置注意事项
Feb 04 PHP
PHP实现蛇形矩阵,回环矩阵及数字螺旋矩阵的方法分析
May 29 PHP
Laravel5.* 打印出执行的sql语句的方法
Jul 24 PHP
微信公众平台开发教程④ ThinkPHP框架下微信支付功能图文详解
Apr 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
PHP XML error parsing SOAP payload on line 1
2010/06/17 PHP
php创建基本身份认证站点的方法详解
2013/06/08 PHP
PHP Session 变量的使用方法详解与实例代码
2013/09/11 PHP
php 字符串中的\n换行符无效、不能换行的解决方法
2014/04/02 PHP
Laravel手动分页实现方法详解
2016/10/09 PHP
比较简单的异步加载JS文件的代码
2009/07/18 Javascript
基于jquery实现漂亮的动态信息提示效果
2011/08/02 Javascript
javascript验证只能输入数字和一个小数点示例
2013/10/21 Javascript
Javascript Objects详解
2014/09/04 Javascript
jQuery创建DOM元素实例解析
2015/01/19 Javascript
javascript面向对象程序设计(一)
2015/01/29 Javascript
jquery+html5烂漫爱心表白动画代码分享
2015/08/24 Javascript
Javascript实现苹果悬浮虚拟按钮
2016/04/10 Javascript
JavaScript之Date_动力节点Java学院整理
2017/06/28 Javascript
JavaScript实现的前端AES加密解密功能【基于CryptoJS】
2018/08/28 Javascript
vuex直接赋值的三种方法总结
2018/09/16 Javascript
jquery 键盘事件 keypress() keydown() keyup()用法总结
2019/10/23 jQuery
如何在Vue中抽离接口配置文件
2019/10/31 Javascript
Js生成随机数/随机字符串的方法小结【5种方法】
2020/05/27 Javascript
[02:39]DOTA2英雄基础教程 天怒法师
2013/11/29 DOTA
[02:04]2014DOTA2国际邀请赛 DK一个时代的落幕
2014/07/21 DOTA
通过Python来使用七牛云存储的方法详解
2015/08/07 Python
老生常谈python之鸭子类和多态
2017/06/13 Python
Python 类的特殊成员解析
2018/06/20 Python
一百多行python代码实现抢票助手
2018/09/25 Python
python 读取Linux服务器上的文件方法
2018/12/27 Python
python列表推导式操作解析
2019/11/26 Python
python数据处理——对pandas进行数据变频或插值实例
2020/04/22 Python
意大利独特而优质的家居用品:Fazzini
2018/12/05 全球购物
在加拿大在线租赁和购买电子游戏:Game Access
2019/09/02 全球购物
第二层交换机和路由器的区别?第三层交换机和路由器的区别?
2013/05/23 面试题
后勤工作职责
2013/12/22 职场文书
厂办主管岗位职责范本
2014/02/28 职场文书
2014年团支部工作总结
2014/11/17 职场文书
还款承诺书范本
2015/01/20 职场文书
Go语言使用select{}阻塞main函数介绍
2021/04/25 Golang