二分查找又叫做折半查找
前提:数组必须是有序的
思想:每次都猜想中间的那个元素,当或大或小时候就能排除掉一般的元素
画图帮助理解一下
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
代码:
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;
}
}