• [PHP] 算法-二位有序数组中查找的PHP实现


    在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。
    1.二维数组,行row从左到右递增,列col从上到下递增
    2.定左下角为比较点,比它大的位于它右边,因此col++,并且col<=arr[0].length-1
    3.比左下角小的位于它的上面,因此row--,row>=0
    
    col=0
    row=arr.length-1
    while row>=0&&col<=arr[0].length-1
        if key==arr[row][col]
            return true
        elseif key>arr[row][col]
            col++
        else
            row-
    return false
    <?php
    //构造一个从上到下,从左到右递增的数组
    $arr=array();
    $flag=0;
    for($i=0;$i<10;$i++){
            $flag=$i*10;
            for($j=0;$j<10;$j++){
                    $flag++;
                    $arr[$i][]=$flag;
            }   
    }
    //生成了一个1到100的二维数组
    
    function Find($target, $array){
            $col=0;
            $row=count($array)-1;
            while($row>=0 && $col<=count($array[0])-1){
                    if($target==$array[$row][$col]){
                            return array($row,$col);
                    }elseif($target>$array[$row][$col]){
                            $col++;
                    }else{
                            $row--;
                    }   
            }   
            return false;
    }
    //输出行,列
    var_dump(Find(50,$arr));
    var_dump($arr);
    array(2) {
      [0]=>
      int(4)
      [1]=>
      int(9)
    }
    array(10) {
      [0]=>
      array(10) {
        [0]=>
        int(1)
        [1]=>
        int(2)
        [2]=>
        int(3)
        [3]=>
        int(4)
        [4]=>
        int(5)
        [5]=>
        int(6)
        [6]=>
        int(7)
        [7]=>
        int(8)
        [8]=>
        int(9)
        [9]=>
        int(10)
      }
      [1]=>
      array(10) {
        [0]=>
        int(11)
        [1]=>
        int(12)
        [2]=>
        int(13)
        [3]=>
        int(14)
        [4]=>
        int(15)
        [5]=>
        int(16)
        [6]=>
        int(17)
        [7]=>
        int(18)
        [8]=>
        int(19)
        [9]=>
        int(20)
      }
      [2]=>
      array(10) {
        [0]=>
        int(21)
        [1]=>
        int(22)
        [2]=>
        int(23)
        [3]=>
        int(24)
        [4]=>
        int(25)
        [5]=>
        int(26)
        [6]=>
        int(27)
        [7]=>
        int(28)
        [8]=>
        int(29)
        [9]=>
        int(30)
      }
      [3]=>
      array(10) {
        [0]=>
        int(31)
        [1]=>
        int(32)
        [2]=>
        int(33)
        [3]=>
        int(34)
        [4]=>
        int(35)
        [5]=>
        int(36)
        [6]=>
        int(37)
        [7]=>
        int(38)
        [8]=>
        int(39)
        [9]=>
        int(40)
      }
      [4]=>
      array(10) {
        [0]=>
        int(41)
        [1]=>
        int(42)
        [2]=>
        int(43)
        [3]=>
        int(44)
        [4]=>
        int(45)
        [5]=>
        int(46)
        [6]=>
        int(47)
        [7]=>
        int(48)
        [8]=>
        int(49)
        [9]=>
        int(50)
      }
      [5]=>
      array(10) {
        [0]=>
        int(51)
        [1]=>
        int(52)
        [2]=>
        int(53)
        [3]=>
        int(54)
        [4]=>
        int(55)
        [5]=>
        int(56)
        [6]=>
        int(57)
        [7]=>
        int(58)
        [8]=>
        int(59)
        [9]=>
        int(60)
      }
      [6]=>
      array(10) {
        [0]=>
        int(61)
        [1]=>
        int(62)
        [2]=>
        int(63)
        [3]=>
        int(64)
        [4]=>
        int(65)
        [5]=>
        int(66)
        [6]=>
        int(67)
        [7]=>
        int(68)
        [8]=>
        int(69)
        [9]=>
        int(70)
      }
      [7]=>
      array(10) {
        [0]=>
        int(71)
        [1]=>
        int(72)
        [2]=>
        int(73)
        [3]=>
        int(74)
        [4]=>
        int(75)
        [5]=>
        int(76)
        [6]=>
        int(77)
        [7]=>
        int(78)
        [8]=>
        int(79)
        [9]=>
        int(80)
      }
      [8]=>
      array(10) {
        [0]=>
        int(81)
        [1]=>
        int(82)
        [2]=>
        int(83)
        [3]=>
        int(84)
        [4]=>
        int(85)
        [5]=>
        int(86)
        [6]=>
        int(87)
        [7]=>
        int(88)
        [8]=>
        int(89)
        [9]=>
        int(90)
      }
      [9]=>
      array(10) {
        [0]=>
        int(91)
        [1]=>
        int(92)
        [2]=>
        int(93)
        [3]=>
        int(94)
        [4]=>
        int(95)
        [5]=>
        int(96)
        [6]=>
        int(97)
        [7]=>
        int(98)
        [8]=>
        int(99)
        [9]=>
        int(100)
      }
    }
  • 相关阅读:
    Jquery对象与DOM对象之间的转换
    关于Content-Type中application/x-www-form-urlencoded 和 multipart/form-data的区别及用法
    ${pageContext.request.contextPath} :JSP取得绝对路径方法
    servlet到底是什么?
    get和post的区别
    HTTP请求返回状态码详解
    XMLHttpRequest对象的readyState和status区别
    hdu 3594 仙人掌图
    hdu 4744 最小费用流
    hdu 4729 树链剖分
  • 原文地址:https://www.cnblogs.com/taoshihan/p/9648434.html
Copyright © 2020-2023  润新知