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

这篇文章主要介绍了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. }