PHP演算法 折半查詢法 又稱二分查詢法

2021-08-25 10:19:21 字數 721 閱讀 2548

二分查詢又稱折半查詢 ,它是一種效率較高的查詢方法。

【二分查詢要求】:

1.必須採用順序儲存結構

2.必須按關鍵字大小有序排列。

【優缺點】折半查詢法的優點是比較次數少,查詢速度快,平均效能好;

其缺點是要求待查表為有序表,且插入刪除困難。因此,折半查詢方法適用於不經常變動而 查詢頻繁的有序列表。

【演算法思想】首先,將表中間位置記錄的關鍵字與查詢關鍵字比較,如果兩者相等,則查詢成功;否則利用中間位置記錄將表分成前、後兩個子表,如果中間位置記 錄的關鍵字大於查詢關鍵字,則進一步查詢前一子表,否則進一步查詢後一子表。

重複以上過程,直到找到滿足條件的記錄,使查詢成功,或直到子表不存在為止,此時查詢不成功。

php例子:

<?php 

$a=range(0,146);

$high=count($a) - 1;

$mid=0;

$low=0;

$found=0;

$m=89; //需要查詢的值

while( ($low<=$high) && ($found==0))

$i++;

} echo "共進行了次查詢\n

\n";

echo "找到的下標是 \n

\n";

echo "找到標誌位 \n

\n";

?>

查詢演算法 二分查詢法 折半查詢

二分查詢也稱折半查詢 binary search 它是一種效率較高的查詢方法。但是,折半查詢要求線性表必須採用順序儲存結構,而且表中元素按關鍵字有序排列。大家都應該玩過猜數字的遊戲吧?給定乙個數字的範圍 1 100 隨機抽取乙個數字,然後玩家輪流猜數字,猜錯時告訴玩家結果數字是大於猜測數字還是小於....

二分查詢法 (折半法)

class arraytest8 int index binarysearch arr,45 system.out.println index 二分查詢法 折半法 前提 陣列必須是有序的 如何去理解折半呢?相信大家都玩過這個遊戲,我在心中想乙個數87,每猜一次我只能告訴你 是大了還是小了,你怎麼才能...

折半查詢法 二分)

題目描述 大魔導師培根曾經說過 讀書使人明智,讀詩使人聰慧,演算使人精密,哲理使人深刻,倫理學使人有修養,邏輯修辭使人善辯。由此可見書籍的重要性是不言而喻的。而與書籍天天打交道的圖書管理員,更是奪天地之造化,吸日月之精華的 神之職業 據史料記載,魔法世界從古至今誕生的眾多不平凡的人物中,有不少人都曾...