PHP折半查詢

2021-10-06 01:37:02 字數 888 閱讀 4515

折半查詢技術,也就是二分查詢。它的前提是線性表中的記錄必須是關鍵碼有序(通常從大到小有序),線性表必須採用順序儲存。

取中間記錄作為比較物件,若給定值與中間記錄的關鍵字,則在中間記錄的關鍵字相等,則查詢成功;若給定值小於中間記錄的作伴去繼續查詢;若給定值大於中間記錄的關鍵字,則在中間記錄的右半區繼續查詢。不斷重複上述過程,直到查詢成功,或所有查詢區域無記錄,查詢失敗為止。

<?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實現的折半查詢演算法示例

定義 折半查詢技術,也就是二分查詢。它的前提是線性表中的記錄必須是關鍵碼有序 通常從大到小有序 線性表必須採用順序儲存。折半查詢的基本思想 取中間記錄作為比較物件,若給定值與中間記錄的關鍵字,則在中間記錄的關鍵字相等,則查詢成功 若給定值小於中間記錄的作伴去繼續查詢 若給定值大於中間記錄的關鍵字,則...