二分法查詢:二分查詢又稱折半查詢,每次查詢,將資料分為兩個部分,逐漸縮小查詢範圍,直到查到資料。
時間複雜度為log2n。
使用二分查詢要求:一是必須是順序儲存資料結構,二按關鍵字有序排列。
/**
* 二分查詢法
*/public class binarysearch else if (d < t[midindex]) else if (d > t[midindex])
} return -1; }
/*** 遞迴實現
*/public static int search2(int t, int d,int high,int low)
if(d == t[mid]) else if(d > t[mid]) else if(d < t[mid])
return -1;
}public static void main(string args) ;
system.out.println("re:" + binarysearch.search(t, 56));
system.out.println("re2:" + binarysearch.search2(t, 11, t.length-1, 0));
}}
二分查詢法優缺點
優點是查詢次數少,效能較高。
缺點是查詢的資料表要為有序排列,有一定的侷限性。
二分查詢適用於不經常變動查詢頻繁的有序列表。
資料結構與演算法之二分查詢法
public static void main string args 目標元素 int target 9 目標元素的索引 int index 1 記錄開始位置 int begin 0 記錄結束位置 int end arr.length 記錄中間位置 int mid begin end 2 迴圈查詢...
資料結構 二分查詢法
public class sequencesearch02 輸入乙個數看看該陣列是否存在此數,並且求出下標,如果沒有就提示 沒有這個數 思路分析 當陣列個數為奇數時 1.先定義乙個陣列 int nums 2.定義 下標low 0,上標height 6 middle指標為 low middle 2 3...
資料結構與演算法 二分查詢
二分查詢的思想是在已經排序 公升序 的陣列中,如果要查詢的數比中位數小,那麼其位置只可能在左半部分,相反只能在右半部分。這樣每次把查詢區間縮小一半,比順序查詢效率快得多。非遞迴寫法 public static int binarysearchinasclooply int nums,int star...