java二分法查找算法 二分法查找的適用條件?
二分法查找的適用條件?二進(jìn)制搜索是一種有效的搜索方法。在二進(jìn)制搜索中,線性表的節(jié)點(diǎn)必須按鍵值排序,線性表按順序存儲(chǔ)。二進(jìn)制搜索的優(yōu)點(diǎn)是比較次數(shù)少,搜索速度快,平均搜索長度小。經(jīng)過{loge n次比較,
二分法查找的適用條件?
二進(jìn)制搜索是一種有效的搜索方法。在二進(jìn)制搜索中,線性表的節(jié)點(diǎn)必須按鍵值排序,線性表按順序存儲(chǔ)。二進(jìn)制搜索的優(yōu)點(diǎn)是比較次數(shù)少,搜索速度快,平均搜索長度小。經(jīng)過{loge n次比較,搜索過程就可以完成了。同時(shí),有序表的插入和刪除需要平均比較和移動(dòng)表中一半的元素。一般來說,二進(jìn)制搜索適用于相對(duì)固定的數(shù)據(jù),二進(jìn)制搜索只適用于線性表的順序存儲(chǔ)。
長度為32的有序表中進(jìn)行二分查找,所需進(jìn)行的關(guān)鍵字比較次數(shù)最多是多少?它的公式是什么?
最小比較數(shù)為1,例如[1,2,3]二進(jìn)制搜索2。最大比較數(shù)為log2(n)1,向下舍入。對(duì)于有序表,根據(jù)二進(jìn)制搜索法的定義,每次比較后問題大小將減少一半,因此2^k=n,解為k=log2(n)。因?yàn)楫?dāng)最后只剩下一個(gè)元素時(shí),搜索過程也會(huì)執(zhí)行,所以1。