二分查找之前需要先排序
排序可以看看我主页发的冒泡排序
public class Find {
public static void main(String[] args) {
/**
二分查找
二分查找之前需要先进行排序
*/
//创建数组
int[] arr = {12, 23, 34, 45, 56, 67};
//调用方法返回要找的数的下标,没有就返回-1
System.out.println(binarySearch(arr, 56));
}
public static int binarySearch(int[] arr,int number){
//start起始位置
int start = 0;
//end结束位置
int end = arr.length - 1;
//利用循环不断去找要查找的数据
while(true){
if (start>end){
return -1;
}
//找到start和end的中间位置
int mid=(start+end)/2;
//拿着mid指向的元素跟要查找的元素进行比较
if (arr[mid]>number){
//number在mid的左边
//start不变,end=mid-1
end=mid-1;
}else if (arr[mid]<number){
//number在mid的右边
//end不变,start=mid+1
start=mid+1;
}else {
//number跟mid指向的元素一样
//找到了
return mid;
}
}
}
}