黑马程序员技术交流社区
标题:
ArraysDemo3
[打印本页]
作者:
果蝇
时间:
2015-9-9 23:09
标题:
ArraysDemo3
import java.util.Arrays;
/*
A:画图演示
二分查找
{11,22,33,44,55,66,77} --> 找 22
B: 思想: 每一次都查中间的那个元素,比较大或者小就能减少一般的元素
*/
public class ArraysDemo3 {
public static void main(String[] args) {
//定义数组
int[] arr = {11,22,66,33,44,55,66,77,88};
int target =78;
//int index = queryByHalf(arr, target);
int index = Arrays.binarySearch(arr, target);
ArraysTool.printArr(arr);
Arrays.sort(arr);
ArraysTool.printArr(arr);
// System.out.println("您查找的元素的角标为:" + index);
}
private static int queryByHalf(int[] arr, int target) {
//定义角标
int start = 0; //初始位置
int end = arr.length-1; //末尾位置
int index = -1;
//循环比较
while (start <= end) {
int mid = (start + end) /2;
// 比较
if (arr[mid] > target){
end = mid-1;
}else if(arr[mid] < target){
start = mid+1;
}else{
System.out.println("找到了");
index = mid;
return index;
}
}
return index;
}
}
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2