二进制搜索是一种运行时间复杂度为O(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