PHP 二分查詢和順序查詢

2022-09-04 23:27:17 字數 1183 閱讀 6801

二分查詢

1

//使用php描述順序查詢和二分查詢(也叫做折半查詢)演算法,順序查詢必須考慮效率,物件可以是乙個有序陣列2/*

*3* 二分查詢法(陣列中查詢某個元素)

4* @param array $array 要查詢的陣列

5* @param int $low 查詢的起始位置

6* @param array $high 查詢的結束位置

7* @param mixed $target 要查詢的目標值

8* @return int 存在此值返回key,不存在返回-19*/

10function bin_search($array, $low, $high, $target)11

elseif ($target

< $array[$mid

]) else21}

22return

false;23

}2425//

$array = [1, 3, 6, 9, 13, 18, 19, 29, 38, 47, 51, 56, 58, 59, 60, 63, 65, 69, 70, 71, 73, 75, 76, 77, 79, 89];

26// $target = 73;

27// $low = 0;

28// $high = count($array) - 1;

29// $find = bin_search($array, $low, $high, $target);

30// var_dump($find);

順序查詢

1/**

2* 順序查詢(陣列裡查詢某個元素)

3* @param array $array 要查詢的陣列

4* @param array $n 查詢的結束位置 + 1

5* @param mixed $target 要查詢的目標值6*/

7function seq_sch($array, $n, $target)8

13}14if ($i

< $n

) else19}

2021

$array = [77, 79, 89];

22$find = seq_sch($array, count($array), 89);

23var_dump($find);

二分查詢和順序查詢

順序查詢可以處理有序陣列,也可以處理無序陣列,依次遍歷陣列,查詢待找元素,其時間複雜度為o n 折半查詢只能處理有序陣列,每次查詢的過程中,都會將查詢範圍縮小一半,其時間複雜度為o log2n 以2為底,n的對數。順序查詢即按照陣列的元素下標位置,依次去比對查詢,直到找到該元素為止,若迴圈結束依然未...

PHP 順序查詢 二分查詢

1 查詢的方法 順序查詢 二分法 2 順序查詢 對某個陣列,按照順序,乙個乙個比較,找到你要的資料。3 順序查詢例項 順序查詢陣列中某個數 如從乙個陣列中找到乙個數 34 arr array 23,45,67,34,9,34,6 如果查到則輸出下標,否則輸出查無此數 arr array 23,45,...

php二分查詢 順序查詢演算法

二分查詢的陣列必須是排好序的,順序查詢沒要求,php查詢陣列元素有內建的函式array search和in array 二分查詢法 function binsearch arr,search elseif arr mid search elseif arr mid search return 查詢失...