Java 實現二分查詢\折半查詢(速度快的查詢有序列表)
阿新 • • 發佈:2019-01-22
二分查詢又稱折半查詢,優點是比較次數少,查詢速度快;其缺點是要求待查表為有序表,且插入刪除困難。因此,折半查詢方法適用於不經常變動而查詢頻繁的有序列表。
該演算法要求:
1、 必須採用順序儲存結構。
2、 必須按關鍵字大小有序排列。
該演算法時間複雜度最壞為:O(logn)
注意點有mid、low、high
其Java實現程式碼如下:
public class BinarySearch { /** * @param args */ public static void main(String[] args) { // TODO Auto-generatedmethod stub int[] src = {1,3,5,7,8,9}; System.out.println(binarySearch(src,3)); } private static int binarySearch(int[] src, int i) { int low=0; int high=src.length-1; System.out.println("low is"+low); System.out.println("high is"+high); while(low<=high){ int mid = (low+high)/2; System.out.println("mid is"+mid); if(src[mid]==i){ return mid; }else if(i<src[mid]){ high=mid-1; }else{ low=mid+1; } } return -1; } }