折半查找法算法分析 C語言中的“折半查找法”是什么?
C語言中的“折半查找法”是什么?半搜索法也稱為二進(jìn)制搜索法。它充分利用了元素之間的順序關(guān)系,采用分治策略,在最壞情況下可以用O(logn)完成搜索任務(wù)。例如,排序后的數(shù)據(jù)是15 12 35 64 78
C語言中的“折半查找法”是什么?
半搜索法也稱為二進(jìn)制搜索法。它充分利用了元素之間的順序關(guān)系,采用分治策略,在最壞情況下可以用O(logn)完成搜索任務(wù)。例如,排序后的數(shù)據(jù)是15 12 35 64 78 89 123 456。如果要查找12,請(qǐng)先將12與上述9個(gè)數(shù)字中的中間數(shù)字(64)進(jìn)行比較,12< 64按上述順序排列,因此您找到的數(shù)據(jù)位于前半部分,即15 12 35 64,然后將12與前半部分的中間數(shù)字(12)進(jìn)行比較。這樣,您可以在兩次搜索后找到一半。半搜索的目的是提高搜索效率
C 折半查找的基本思想和步驟?
半搜索法是一種有效的搜索方法。其基本思想是:將搜索數(shù)據(jù)范圍的下限設(shè)為l=0,上限設(shè)為h=4,求中點(diǎn)M=(l h)/2,將x與中點(diǎn)元素am進(jìn)行比較,如果x等于am,則查找并停止搜索;否則,如果x大于am,則替換下限l=M1,在下半部分繼續(xù)搜索;如果x小于am,則繼續(xù)搜索然后,更改上限H=M-1,繼續(xù)在上半部分搜索;重復(fù)上一過程,直到找到或L&th。如果l&th,則表示沒有這樣的號(hào)碼,打印找不到信息,程序結(jié)束。步驟:1。首先確定整個(gè)搜索間隔的中間位置mid=(左-右)/2。2將要搜索的關(guān)鍵字值與中間位置的關(guān)鍵字值進(jìn)行比較,如果相等,則搜索成功;如果大于,則在后(右)半?yún)^(qū)繼續(xù)搜索;如果小于,則在前(左)半?yún)^(qū)繼續(xù)搜索。三。根據(jù)確定的縮小面積的一半公式,重復(fù)上述步驟。最后得到的結(jié)果是:要么搜索成功,要么搜索失敗。半搜索的存儲(chǔ)結(jié)構(gòu)是一維數(shù)組。擴(kuò)展數(shù)據(jù)半搜索法的優(yōu)點(diǎn)是:比較次數(shù)少,搜索速度快,平均性能好;缺點(diǎn)是需要查找的表是有序表,插入和刪除困難。因此,半搜索法適合于尋找不頻繁變化的頻繁有序列表。