当前位置:首页 > PHP教程 > php数组 > 列表

PHP实现二维数组中的查找算法小结

发布:smiling 来源: PHP粉丝网  添加日期:2021-09-25 15:44:55 浏览: 评论:0 

这篇文章主要介绍了PHP实现二维数组中的查找算法,涉及PHP数组遍历、判断、计算等相关操作技巧,需要的朋友可以参考下。

本文实例讲述了PHP实现二维数组中的查找算法,分享给大家供大家参考,具体如下:

方法1:silu从左下角最后一行的第一个元素开始,遍历,如果小于target 则遍历该行的所有元素,找到结束,如果大于继续往上一行进行,等于直接结束。

  1. <?php 
  2. function Find($target$array
  3.   $m_y = count($array['0']); 
  4.   $m_x = count($array); 
  5.   for($i=$m_x-1;$i>=0;$i--){ 
  6.     if($array[$i]['0'] < $target){ 
  7.       for($j=1;$j<$m_y;$j++){ 
  8.         if($array[$i][$j] == $target){ 
  9.           return 1; 
  10.           break
  11.         } 
  12.       } 
  13.     } 
  14.     if($array[$i]['0'] == $target){ 
  15.       return 1; 
  16.       break
  17.     } 
  18.   } 

方法2:

  1. function Find($target$array
  2.   $m_y = count($array['0']); 
  3.   $m_x = count($array); 
  4.   $i = 0; 
  5.     for($i =$m_x-1,$j=0;$i>=0&&$j<$m_y;){ 
  6.       if($array[$i][$j]<$target){ 
  7.         $j++; 
  8.         continue
  9.       } 
  10.       if($array[$i][$j]>$target){ 
  11.         $i--; 
  12.         continue
  13.       } 
  14.       if($array[$i][$j] == $target){ 
  15.         return 1; 
  16.       } 
  17.     } 

方法3:

  1. function Find($target$array
  2.   $m_y = count($array['0']); 
  3.   $m_x = count($array); 
  4.   $i = $m_x-1; 
  5.   $j = 0; 
  6.   while(1){ 
  7.     if($array[$i][$j]<$target){ 
  8.       $j++; 
  9.     } 
  10.     if($array[$i][$j]>$target){ 
  11.       $i--; 
  12.     } 
  13.     if($array[$i][$j] == $target){ 
  14.       return 1; 
  15.     } 
  16.     if($i == 0||$j == $m_y-1){ 
  17.       return 0; 
  18.     } 
  19.   } 
  20. }

Tags: PHP二维数组查找算法

分享到: