**:
public int binarysearch
(int key, int[
] array)
return
-low -1;
//為避免0的存在,如果找不到返回的值為要插入的位置的負值-1,-1是因為避免0的存在
}
注意點:
1.mid值得計算:使用low + (high - low) / 2 是為了避免溢位(直接計算low + high 的值可能會溢位)
2.high = mid - 1 會隨著迴圈條件low <= high 而變化;當迴圈條件為 low < high 時,就應該為high = mid;
3.直接印象:序列有序;時間複雜度o(logn), 空間複雜度o(1);
參考:推薦)
折半查詢面試題及細節的處理
public class arraydemo6 system.out.println getindex 4 arr,107,0,arr.length 1 折半查詢面試題 給定乙個有序的陣列,如果忘該陣列中儲存乙個元素,並保證這個陣列還是有序的。返回所儲存位置的角標。看到 1.有序的陣列 2.涉及查詢...
查詢 折半查詢
折半查詢 int search keytype key,int n,keytype k return 1 查詢失敗,返回 1 在演算法中,n表示記錄的個數。key表示要查詢的關鍵字。key為關鍵字順序表,每個元素都是對應記錄的關鍵字。例如key 0 為第0個記錄的關鍵字。如果每條記錄的資訊與它的關鍵...
折半查詢的改進
本文針對折半查詢速度慢的問題,提出了一種三段查詢演算法,在折半查詢的基礎上,將搜尋區域從兩端擴充套件到三段。public class lookthree public static void main string args 將折半查詢分成三段 param x private static void...