折半查詢 細節的指出

2021-09-11 09:36:31 字數 404 閱讀 7641

**:

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...