黑马程序员技术交流社区
标题:
二分查找
[打印本页]
作者:
keto
时间:
2015-6-25 20:08
标题:
二分查找
/*
* 在数组中查找一个数:
* 1.基本查找:依次遍历,并依次比较。缺陷:如果数组较长,几十万的长度,要找的数在左右一个,也得从头找。
* 2.二分查找:
*/
public class Demo {
public static void main(String[] args) {
int[] arr = {2,3,6,6,78,88,99};
for(int i = 0; i< arr.length ; i++){
System.out.println("循环第:" + (i + 1) + " 次查找:");
if(arr[i] == 88){
System.out.println("找到,索引为:" + i);
break;
}
}
//二分查找实现:
int start = 0;
int end = arr.length - 1;
int mid = (start + end) / 2;
int num = 88;
while(end >= start){
System.out.println("循环一次:");
if(num > arr[mid]){
//向右走
start = mid + 1;
}
if(num < arr[mid]){
//向左走
end = mid - 1;
}
if(num == arr[mid]){
//找到了
System.out.println("二分查找找到:" + mid);
break;
}
//改变一下mid的值
mid = (start + end) / 2;
}
}
}
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2