折半查找算法是建立在有序数组上,通过不断缩小一半的范围进行找到,
直至最终找到数据,实例如下:
public class BinSearchMain { public static void main(String[] args) { int[] arr = {1,3,3,5,9,12,16,17}; System.out.println(binSearch(arr,5)); } static int binSearch(int[] arr,int a){ int low = 0; int high = arr.length-1; while(low<=high){ int mid = (low+high)>>1; if(arr[mid]==a) return mid; //查找到指定元素,返回位置 else if(arr[mid]>a) high=mid-1; else low = mid+1; } return -1; //未找到指定元素,返回-1 } }