折半查詢技術,也就是二分查詢。它的前提是線性表中的記錄必須是關鍵碼有序(通常從大到小有序),線性表必須採用順序儲存。
取中間記錄作為比較物件,若給定值與中間記錄的關鍵字,則在中間記錄的關鍵字相等,則查詢成功;若給定值小於中間記錄的作伴去繼續查詢;若給定值大於中間記錄的關鍵字,則在中間記錄的右半區繼續查詢。不斷重複上述過程,直到查詢成功,或所有查詢區域無記錄,查詢失敗為止。
<?php
function bin_search($arr, $val)
elseif($val>$arr[$mid])elseif ($val<$arr[$mid])
}}$arr = array(1, 3, 5, 7, 7, 9, 25, 68, 98, 145, 673, 8542);
echo "開始".php_eol;
echo bin_search($arr, 673);
//開始 找到了_673_索引10
<?php
//遞迴方式
function bin_recur_search($arr,$val)elseif($arr[$mid] > $val)else
} return '未找到'.$val;
}//非遞迴方式
function bin_search($arr,$val)elseif($val > $arr[$mid])else
}} return '未找到'.$val;
}$arr = array(1,3,5,7,7,9,25,68,98,145,673,8542);
echo bin_recur_search($arr, 673);
echo bin_search($arr, 673);
?>
查詢 折半查詢
折半查詢 int search keytype key,int n,keytype k return 1 查詢失敗,返回 1 在演算法中,n表示記錄的個數。key表示要查詢的關鍵字。key為關鍵字順序表,每個元素都是對應記錄的關鍵字。例如key 0 為第0個記錄的關鍵字。如果每條記錄的資訊與它的關鍵...
PHP查詢演算法之二分查詢 折半查詢
折半查詢意為從把陣列從中間分成兩半,找到乙個中間值,然後進行判斷,首先這個陣列一定是從大到小或者從小到大排好序的。下面的 裡陣列是從小到大排序的。遞迴形式的 定義乙個從小到大排好序的陣列 arr 12 34 43 56 77 86 88 90 99 101 要查詢的數字 num 88 count c...
PHP實現的折半查詢演算法示例
定義 折半查詢技術,也就是二分查詢。它的前提是線性表中的記錄必須是關鍵碼有序 通常從大到小有序 線性表必須採用順序儲存。折半查詢的基本思想 取中間記錄作為比較物件,若給定值與中間記錄的關鍵字,則在中間記錄的關鍵字相等,則查詢成功 若給定值小於中間記錄的作伴去繼續查詢 若給定值大於中間記錄的關鍵字,則...