案例一:區域性值最小值位置
雖然是個無序陣列,但是由於任意兩個相鄰元素的值不重複的性質決定了可以使用二分搜尋演算法。
思路:1.陣列為空或長度為0,返回-1,表示區域性值不存在
2.陣列長度為1,返回位置0
3.陣列長度大於1時:考慮三種情況
考慮最左邊和最右邊的元素:如果arr[0]
考慮最中間元素,如果中間元素大於它左邊的元素,那麼區域性最小值就應該在陣列的左半部分
如果中間元素小於大於它右邊的元素,那麼區域性最小值就應該在陣列的右半部分
中間元素既小於它左邊的值又小於它右邊的值,那麼它就是區域性最小
總結:該題表明二分搜尋演算法不一定只能在有序陣列中進行,只要你在查詢的時候發現能否淘汰陣列的一半,留下另一半,那麼都是可以用二分搜尋的。
public class localminimum ;
int arr2=;
int arr3=;
int arr4=;
system.out.println(getlessindex(arr1));
system.out.println(getlessindex(arr2));
system.out.println(getlessindex(arr3));
system.out.println(getlessindex(arr4)); }
public static int getlessindex(int arr)
return left;
}}
二分查詢迴圈最小值
典型的應用有 1 最常規問題 在有序陣列中查詢某個值。2 有序陣列中查詢某個值的所在範圍。3 在迴圈有序陣列中查詢某個值。4 在迴圈有序陣列中查詢陣列最小值 即迴圈偏移位置 二分查詢的主要步驟 一般都是根據左右邊界left和right來控制查詢範圍,取得中間位置a mid 依據mid位置的值來選擇下...
二分 最大的最小值
mad jim jaspers為了證明釹磁鐵的強大,拿來了乙個有n個小槽的長木條,m個釹磁鐵,第i個小槽在xi的位置上,為了不讓磁鐵互相吸引,每塊磁鐵離其他磁鐵的距離應該盡可能的大。請你幫mjj寫乙個程式,求出所有磁鐵之間最小距離的最大值。只要磁鐵距離大於等於1就不會互相吸引。輸入格式 第一行兩個數...
二分 最小值最大化
問題描述 記得上學那會,fbs同學經常會欺負蘿蔔同學。有一次,他出了這麼一道題目,想為難一下蘿蔔同學。題目是這樣的 有n個整數x i,x i值的範圍從0到1000000000。要從中選出c個數 2 c n 使得任意兩個數差的絕對值的最小值盡可能大,求這個最大值。由於資料太大,這次蘿蔔同學的確被難住了...