這篇文章帶給大家的內容是關於php如何實現在二維有序數組中查找資料(程式碼),有一定的參考價值,有需要的朋友可以參考一下,希望對你有幫助。
在一個二維數組中(每個一維數組的長度相同),每一行都按照從左到右遞增的順序排序,每一列都按照從上到下遞增的順序排序。請完成一個函數,輸入這樣的一個二維數組和一個整數,判斷數組是否含有該整數。
1.二維數組,行row從左到右遞增,列col從上到下遞增
2.定左下角為比較點,比它大的位於它右邊,因此col ,並且col9770bcc563fd3e85aa2029faab7e31f7=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) } }
相關推薦:
PHP 冒泡排序 二分查找 順序查找 二維數組排序演算法函數的詳解
以上是php如何實作在二維有序數組中尋找資料(程式碼)的詳細內容。更多資訊請關注PHP中文網其他相關文章!