<?php
class
binary
elseif
($arr
[$mid
]<
$search
)elseif
($arr
[$mid
]>
$search)}
return
"查詢失敗";}
//順序查詢
public
function
seqsearch
($arr,$k
)}return
"查詢失敗";}
public
function
getcount()
}$binary
=new
binary
;
<?php
require_once
'binary.php'
;$arr=[
1,2,
3,4,
5,6,
7,8,
9,10,
11,12]
;echo
$binary
->
binsearch
($arr,19
)."\n"
;echo
$binary
->
getcount()
;
先把原始碼貼出來,然後在解析它其實在經過幾次debug你就可以發現,其實這邊最重要的乙個數值就是mid這個中間數
1.會先把中間數求出來
2.然後這個中間數會以索引值的形式存在
3.判斷第一次這個索引值跟需要搜尋的那個值是否相等
4.判斷陣列的這個中間數為索引的值是否比查詢的小,如果小的話那就說明,這個中位數的索引的值 左側都會小於這個搜尋的值
5.判斷陣列的這個中間數為索引的值如果比查詢的值大,那就說明這個中間數為索引的右側都會比查詢的這個值大
注意點:變數low跟height
PHP 二分查詢演算法
二分查詢也稱折半查詢 binary search 它是一種效率較高的查詢方法。但是,折半查詢要求線性表必須採用順序儲存結構,而且表中元素按關鍵字有序排列。param array arr 待查詢區間 param int number 查詢數 param int lower 區間最低點 param in...
php二分查詢演算法
二分查詢也稱折半查詢 binary search 它是一種效率較高的查詢方法。但是,折半查詢要求線性表必須採用順序儲存結構,而且表中元素按關鍵字有序排列。資料一分為二,然後兩邊比較,保留有效區間,繼續一分為二查詢,直到找到或者超出區間則結束,所以二分查詢的基本步驟是 確定要查詢的區間 確定二分時的參...
php查詢演算法,PHP演算法之二分查詢
二分查詢的定義 二分查詢也稱折半查詢 binary search 它是一種效率較高的查詢方法。但是,折半查詢要求線性表必須採用順序儲存結構,而且表中元素按關鍵字有序排列。演算法的要求 從上面的定義我們可以知道,滿足該演算法的要求必須如下兩點 必須採用順序儲存結構。必須按關鍵字大小有序排列。演算法的步...