二分查找又叫做折半查找
前提:数组必须是有序的
思想:每次都猜想中间的那个元素,当或大或小时候就能排除掉一般的元素
画图帮助理解一下
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
代码:
public class LookInTwo { public static void main(String[] args) { int[] arr = {12,34,23,41,15,65,2,4}; int[] arr2=BubbleDemo.getBubble(arr); for(int i=0;i<arr2.length;i++){ if (i==0) { System.out.print("["+arr2[i]+" "); }else if (i==arr2.length-1) { System.out.print(arr2[arr2.length-1]+"]"); }else { System.out.print(arr2[i]+" "); } } System.out.println(); System.out.println(getLookInTwo(arr2, 41)); } public static int getLookInTwo(int[] arr,int num){ int start = 0; int end = arr.length; while(start<=end){ int mid =(start+end)/2; if(arr[mid]==num){ return mid; }else if(arr[mid]>num){ end=mid-1; }else{ start = mid+1; } } return -1; } }