局部最小值问题:
条件:n个数的无序数组 array,相邻两个数一定不相等,找出其中的一个局部最小值。
如果array[0]< array[1] ,返回 array[0];如果array[n-1]<array[n-2],返回array[n-1];其他的位置需要满足 array[i-1]>array[i] and array[i]<array[i+1],返回array[i]
分析:
1.
1.如果 array[0]< array[1] ,return array[0];
2.如果array[n-1]<array[n-2],return array[n-1];
3.如果 array[0]>array[1] and array[n-1]>array[n-1],根据曲线,必然出现中间某个位置,array[i] 为局部最小。
3.1 直接找到array[mid] ,
if array[mid-1]>array[mid] and array[mid] <array[i+1] ,return array[mid]
else
if array[mid-1] < array[mid]