当前位置:首页 > 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. { 
  4.   $m_y = count($array['0']); 
  5.   $m_x = count($array); 
  6.   for($i=$m_x-1;$i>=0;$i--){ 
  7.     if($array[$i]['0'] < $target){ 
  8.       for($j=1;$j<$m_y;$j++){ 
  9.         if($array[$i][$j] == $target){ 
  10.           return 1; 
  11.           break; 
  12.         } 
  13.       } 
  14.     } 
  15.     if($array[$i]['0'] == $target){ 
  16.       return 1; 
  17.       break; 
  18.     } 
  19.   } 
  20. } 

方法2:

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

方法3:

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

Tags: PHP二维数组查找算法

分享到: