• 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
广告