二分查找之前需要先排序
排序可以看看我主页发的冒泡排序
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;
}
}
}
}
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/180587.html