二分法的使用條件 二分法查找為什么只適用于順序存儲(chǔ)?
二分法查找為什么只適用于順序存儲(chǔ)?誰(shuí)說(shuō)它只能用于順序存儲(chǔ),鏈?zhǔn)酱鎯?chǔ)也可以使用??匆幌露址ǖ乃惴枋?,其中提到它只能用于順序存儲(chǔ)。算法與其實(shí)現(xiàn)無(wú)關(guān)。我們只能說(shuō)有些算法在某些方面更便于實(shí)現(xiàn)。二分法查找適
二分法查找為什么只適用于順序存儲(chǔ)?
誰(shuí)說(shuō)它只能用于順序存儲(chǔ),鏈?zhǔn)酱鎯?chǔ)也可以使用??匆幌露址ǖ乃惴枋?,其中提到它只能用于順序存儲(chǔ)。
算法與其實(shí)現(xiàn)無(wú)關(guān)。我們只能說(shuō)有些算法在某些方面更便于實(shí)現(xiàn)。
二分法查找適用于何種存儲(chǔ)方式的有序表?
二進(jìn)制搜索是一種有效的搜索方法。在二進(jìn)制搜索中,線性表的節(jié)點(diǎn)必須按鍵值排序,線性表按順序存儲(chǔ)。二進(jìn)制搜索的優(yōu)點(diǎn)是比較次數(shù)少,搜索速度快,平均搜索長(zhǎng)度小。經(jīng)過(guò){loge n次比較,搜索過(guò)程就可以完成了。同時(shí),有序表的插入和刪除需要平均比較和移動(dòng)表中一半的元素。一般來(lái)說(shuō),二進(jìn)制搜索適用于相對(duì)固定的數(shù)據(jù),二進(jìn)制搜索只適用于線性表的順序存儲(chǔ)。
下列數(shù)據(jù)結(jié)構(gòu)中,能用二分法進(jìn)行查找的是( )?
A.按順序存儲(chǔ)的有序線性列表的二分法僅適用于有序列表。其次,由于鏈表對(duì)節(jié)點(diǎn)的操作只能以P->next的方式進(jìn)行,不適合下標(biāo)操作,因此不能使用D.有序線性表。但是,可以使用有序線性列表
適用的前提條件:
1。存儲(chǔ)在數(shù)組中(如一維數(shù)組)
2數(shù)組元素按順序(如升序)搜索的基本思想:半搜索,將要搜索的元素設(shè)為值,將值與中間元素(中間=左(右-左)/2比較,這樣做的好處是防止中間元素越界)。如果小于中間值,搜索范圍將繼續(xù)在中間1,如果大于中間值,搜索范圍將在中間1-1。如果它等于中間值,則搜索的結(jié)束索引元素為value=middle。