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维护文件系统
Oct 09 PHP
php利用cookie实现访问次数统计代码
May 19 PHP
PHP file_get_contents设置超时处理方法
Sep 30 PHP
php session劫持和防范的方法
Nov 12 PHP
PHP实现自动登入google play下载app report的方法
Sep 23 PHP
CodeIgniter针对lighttpd服务器URL重写的方法
Jun 10 PHP
PHP中COOKIES使用示例
Jul 26 PHP
ThinkPHP实现的rsa非对称加密类示例
May 29 PHP
PHP两个n位的二进制整数相加问题的解决
Aug 26 PHP
CI框架网页缓存简单用法分析
Dec 26 PHP
PHP中的empty、isset、isnull的区别与使用实例
Mar 22 PHP
laravel 框架结合关联查询 when()用法分析
Nov 22 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 fread()使用技巧
2010/01/22 PHP
php文件上传的简单实例
2013/10/19 PHP
详解php比较操作符的安全问题
2015/12/03 PHP
微信支付开发告警通知实例
2016/07/12 PHP
Thinkphp5框架ajax接口实现方法分析
2019/08/28 PHP
laravel-admin select框默认选中的方法
2019/10/03 PHP
php ZipArchive实现多文件打包下载实例
2019/10/31 PHP
javascript 学习之旅 (3)
2009/02/05 Javascript
使用ExtJS技术实现的拖动树结点
2010/08/05 Javascript
菜鸟javascript基础整理1
2010/12/06 Javascript
改善用户体验的五款jQuery插件分享
2011/05/22 Javascript
jQuery 1.8 Release版本发布了
2012/08/14 Javascript
Jquery index()方法 获取相应元素索引值
2012/10/12 Javascript
JS产生随机数的几个用法详解
2016/06/22 Javascript
JS中使用FormData上传文件、图片的方法
2016/08/07 Javascript
Windows下使用Nodejs运行js的方法
2017/09/02 NodeJs
详解Angular中通过$location获取地址栏的参数
2018/08/02 Javascript
详解BootStrap表单验证中重置BootStrap-select验证提示不清除的坑
2019/09/17 Javascript
JS实现斐波那契数列的五种方式(小结)
2020/09/09 Javascript
教你用Python脚本快速为iOS10生成图标和截屏
2016/09/22 Python
python实现百度语音识别api
2018/04/10 Python
matplotlib给子图添加图例的方法
2018/08/03 Python
python基于paramiko将文件上传到服务器代码实现
2019/07/08 Python
使用已经得到的keras模型识别自己手写的数字方式
2020/06/29 Python
CSS3中31种选择器使用方法教程
2013/12/05 HTML / CSS
阿迪达斯德国官方网站:adidas德国
2017/07/12 全球购物
英国最大的女士服装零售商:Bonmarché
2017/08/17 全球购物
捷克建筑材料网上商店:DEK.cz
2021/03/06 全球购物
测绘工程本科生求职信
2013/10/10 职场文书
会计专业职业规划:规划自我赢取未来
2014/02/12 职场文书
预备党员的自我评价
2014/03/12 职场文书
县长群众路线对照检查材料思想汇报
2014/10/02 职场文书
2014年政协委员工作总结
2014/12/01 职场文书
党支部工作总结2015
2015/04/01 职场文书
酒店前台岗位职责
2015/04/16 职场文书
为什么RedisCluster设计成16384个槽
2021/09/25 Redis