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 相关文章推荐
ueditor 1.2.6 使用方法说明
Jul 24 PHP
PHP处理Json字符串解码返回NULL的解决方法
Sep 01 PHP
smarty表格换行实例
Dec 15 PHP
浅谈php命令行用法
Feb 04 PHP
memcache一致性hash的php实现方法
Mar 05 PHP
php生成图片缩略图的方法
Apr 07 PHP
php文件读取方法实例分析
Jun 20 PHP
php连接oracle数据库的方法(测试成功)
May 26 PHP
php基于单例模式封装mysql类完整实例
Oct 18 PHP
php文件上传 你真的掌握了吗
Nov 28 PHP
Zend Framework入门教程之Zend_Mail用法示例
Dec 08 PHP
详解Laravel服务容器的优势
May 29 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源码加密 仿微盾PHP加密专家(PHPCodeLock)
2010/05/06 PHP
php中sprintf与printf函数用法区别解析
2014/02/17 PHP
Symfony2使用第三方库Upload制作图片上传实例详解
2016/02/04 PHP
PHP进阶学习之命名空间基本用法分析
2019/06/18 PHP
Javascript this关键字使用分析
2008/10/21 Javascript
jQuery绑定事件不执行但alert后可以正常执行
2014/06/03 Javascript
AngularJS基础学习笔记之简单介绍
2015/05/10 Javascript
jQuery可见性过滤器:hidden和:visibility用法实例
2015/06/24 Javascript
js中跨域方法原理详解
2015/07/19 Javascript
jquery实现鼠标经过显示下划线的渐变下拉菜单效果代码
2015/08/24 Javascript
jquery实现右侧栏菜单选择操作
2016/03/04 Javascript
nodejs微信公众号支付开发
2016/09/19 NodeJs
JS数组返回去重后数据的方法解析
2017/01/03 Javascript
从零学习node.js之利用express搭建简易论坛(七)
2017/02/25 Javascript
Angular动态添加、删除输入框并计算值实例代码
2017/03/29 Javascript
bootstrap confirmation按钮提示组件使用详解
2017/08/22 Javascript
jQuery EasyUI window窗口使用实例代码
2017/12/25 jQuery
vue 开发一个按钮组件的示例代码
2018/03/27 Javascript
vue渲染时闪烁{{}}的问题及解决方法
2018/03/28 Javascript
详解react内联样式使用webpack将px转rem
2018/09/13 Javascript
关于AngularJS中ng-repeat不更新视图的解决方法
2018/09/30 Javascript
vue实现中部导航栏布局功能
2019/07/30 Javascript
wepy--用vantUI 实现上弹列表并选择相应的值操作
2020/11/03 Javascript
vant时间控件使用方法详解
2020/12/24 Javascript
[34:56]Ti4冒泡赛LGD vs Liquid 1
2014/07/14 DOTA
Python计时相关操作详解【time,datetime】
2017/05/26 Python
浅析python实现scrapy定时执行爬虫
2018/03/04 Python
Django开发中的日志输出的方法
2018/07/02 Python
python数据库操作mysql:pymysql、sqlalchemy常见用法详解
2020/03/30 Python
Python 实现集合Set的示例
2020/12/21 Python
canvas绘制文本内容自动换行的实现代码
2019/01/14 HTML / CSS
中国最大的团购网站:聚划算
2016/09/21 全球购物
少先队入队活动方案
2014/02/08 职场文书
工商管理专业大学生职业生涯规划范文
2014/03/09 职场文书
SQL实现LeetCode(196.删除重复邮箱)
2021/08/07 MySQL
PHP面试题 wakeup魔法 Ezpop pop序列化与反序列化
2022/04/11 PHP