• Java 資料結構教程

Java 資料結構 - 二分查詢



二分查詢是一種快速的搜尋演算法,其執行時複雜度為 Ο(log n)。這種搜尋演算法基於分治的原理。為了使該演算法正常工作,資料集合應該以排序的形式存在。

二分查詢透過比較集合中最中間的項來查詢特定項。如果匹配成功,則返回該項的索引。如果中間項大於該項,則在中間項左側的子陣列中搜索該項。否則,在中間項右側的子陣列中搜索該項。此過程繼續在子陣列上進行,直到子陣列的大小減小到零。

示例

public class BinarySearch {
   public static void main(String args[]) {
      int array[] =  {10, 20, 25, 57, 63, 96};
      int size = array.length;
      int low = 0;
      int high = size-1;
      int value = 25;
      int mid = 0;
      mid = low +(high-low)/2;

      while(low<=high) {
         if(array[mid] == value) {
            System.out.println(mid);
            break;
         } else if(array[mid]<value)
            low = mid+1;
            else high = mid - 1;
      }
      mid = (low+high)/2;      
   }
}

輸出

2
廣告

© . All rights reserved.