2 回答

TA貢獻(xiàn)1817條經(jīng)驗(yàn) 獲得超14個(gè)贊
你對(duì)對(duì)半查找理解錯(cuò)了,你的min,max應(yīng)該是下標(biāo)而不是值
原理:類似于二分法解方程,二分查找首先比對(duì)序列中間的數(shù)是否是要找的數(shù),如果不是,由于是有序數(shù)列,則看其在左側(cè)區(qū)間還是右側(cè)區(qū)間,舍棄不在的那一半?yún)^(qū)間,然后在剩余的區(qū)間重復(fù)剛才的辦法,直到找到該數(shù),由于每次舍棄一半的數(shù)據(jù)量,所以查找效率較高。
描述:設(shè)三個(gè)變量 left,right,middle分別為序列的兩側(cè)下標(biāo)和中間下標(biāo),當(dāng)判斷出不在左側(cè)區(qū)間,則 left=middle+1 ,從而利用右側(cè)一半構(gòu)造出一個(gè)新區(qū)間,否則 right=middle-1,利用左邊一側(cè)構(gòu)造新區(qū)間,然后重復(fù)剛才過(guò)程,如此下去,要么找到數(shù)據(jù),要么left>right,此時(shí)也應(yīng)該停止查找,說(shuō)明序列中沒有該數(shù)。
- 2 回答
- 0 關(guān)注
- 1249 瀏覽
添加回答
舉報(bào)