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对gzip文件或者字符串解压实例参考
Jul 25 PHP
通过JavaScript或PHP检测Android设备的代码
Mar 09 PHP
php 记录进行累加并显示总时长为秒的结果
Nov 04 PHP
PHP 下载文件时自动添加bom头的方法实例
Jan 10 PHP
C# WinForm中实现快捷键自定义设置实例
Jan 23 PHP
php+ajax+json 详解及实例代码
Dec 12 PHP
php json_encode与json_decode详解及实例
Dec 13 PHP
php使用json_decode后数字对象转换成了科学计数法的解决方法
Feb 20 PHP
PHP检测一个数组有没有定义的方法步骤
Jul 20 PHP
PHP实现文件上传操作和封装
Mar 04 PHP
通过PHP的Wrapper无缝迁移原有项目到新服务的实现方法
Apr 02 PHP
PhpStorm+xdebug+postman调试技巧分享
Sep 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
你可能不知道PHP get_meta_tags()函数
2014/05/12 PHP
php实现数字补零的方法总结
2018/09/12 PHP
Laravel框架控制器,视图及模型操作图文详解
2019/12/04 PHP
ie 处理 gif动画 的onload 事件的一个 bug
2007/04/12 Javascript
Javascript 倒计时源代码.(时.分.秒) 详细注释版
2011/05/09 Javascript
addEventListener()第三个参数useCapture (Boolean)详细解析
2013/11/07 Javascript
jquery cookie的用法总结
2013/11/18 Javascript
初识Node.js
2014/09/03 Javascript
分享12个实用的jQuery代码片段
2016/03/09 Javascript
Ajax分页插件Pagination从前台jQuery到后端java总结
2016/07/22 Javascript
js获取一组日期中最近连续的天数
2017/05/25 Javascript
Nuxt 项目性能优化调研分析
2020/11/07 Javascript
python操作gmail实例
2015/01/14 Python
Python与Java间Socket通信实例代码
2017/03/06 Python
Python轻量级ORM框架Peewee访问sqlite数据库的方法详解
2017/07/20 Python
python里使用正则的findall函数的实例详解
2017/10/19 Python
浅谈Python中range和xrange的区别
2017/12/20 Python
Python实现基于TCP UDP协议的IPv4 IPv6模式客户端和服务端功能示例
2018/03/22 Python
Python使用pip安装pySerial串口通讯模块
2018/04/20 Python
Python实现验证码识别
2020/06/15 Python
python3让print输出不换行的方法
2020/08/24 Python
python 利用百度API识别图片文字(多线程版)
2020/12/14 Python
css3动画效果抖动解决方法
2018/09/03 HTML / CSS
生物有机护肤品:Aurelia Probiotic Skincare
2018/01/31 全球购物
计算机专业毕业生求职信分享
2013/12/24 职场文书
澳大利亚商务邀请函
2014/01/17 职场文书
2014年工会工作总结
2014/11/12 职场文书
大学生简历自我评价2015
2015/03/03 职场文书
2015年学校减负工作总结
2015/05/19 职场文书
暑期辅导班宣传单
2015/07/14 职场文书
《法国号》教学反思
2016/02/22 职场文书
分享15个Webpack实用的插件!!!
2021/03/31 Javascript
详解Oracle块修改跟踪功能
2021/11/07 Oracle
Win10 和 Win11可以共存吗? win10/11产品生命周期/服务更新介绍
2021/11/21 数码科技
磁贴还没死, 微软Win11可修改注册表找回Win10开始菜单
2021/11/21 数码科技
Android超详细讲解组件ScrollView的使用
2022/03/31 Java/Android