算法原理
? ??每次查找數(shù)組的中間值與目標(biāo)值做對(duì)比
? ??找不到就將數(shù)組折半后重復(fù)上一步
示例數(shù)組
在有序數(shù)組中查找指定項(xiàng)
在有序數(shù)組中找>=number的最左位置
在任意兩個(gè)相鄰數(shù)不相等的無(wú)序數(shù)組中找到一個(gè)局部最小值
? ??局部最小的定義
? ? ? ? 在數(shù)組[0,2]上箍镜,由于0<2拨匆,故局部最小為0
? ? ? ? 在數(shù)組[0,2,.....8,1,5,......7,8],由于1<8且1<5,故1為局部最小
? ? ? ? 在數(shù)組[1,......,8,6],由于8>6淌实,故局部最小為6
? ??示例數(shù)組
? ??題解
? ? ? ? 由于只需要找出其中一個(gè)即可,故我們可以先判斷邊界情況是否如何::在0和1的位置是否符合?
:最后兩位是否符合?
:每次找到的中點(diǎn)是否滿足
? ? ? ? 如果首尾不滿足栓辜,則在0到1(n-1到n-2)處一定是下降,既然必存在局部最小,則一定存在一個(gè)凹陷點(diǎn)符合;那么在這個(gè)范圍內(nèi)嚣镜,一定最少有3個(gè)元素,故循環(huán)的結(jié)束條件應(yīng)該為l<r-1