您的位置:首页 > 其它

算法_二分查找(折半查找)

2018-09-09 17:40 127 查看
版权声明:版权所有,请留言 https://blog.csdn.net/xwl_java/article/details/82080127

分查找(折半查找)

package com.xwl;
/**
* 二分查找
* @author Administrator
*/
public class Test_erfenchazhao {
public static void main(String[] args) {
//定义一个数组
int[] arr = new int[] {12,13,25,64,87};
System.out.println(search(arr, 12));
System.out.println(search(arr, 13));
System.out.println(search(arr, 25));
}
//查询   数组给我     查询的key 给我
public static int search(int[] arr, int key) {
//定义开始下标 start
int start = 0;
//定义结束下标 end
int end = arr.length - 1;
//循环条件  当结束大于或者等于开始的时候
while (start <= end) {
//中间值下标
int middle = (start + end) / 2;
//判断如果中间下标对应的中间值大于key 就把中间下标-1赋值给end
if (key < arr[middle]) {
end = middle - 1;

} else if (key > arr[middle]) {
//否者开始下标=中间下标+1
start = middle + 1;
} else {
return middle;
}
}
return -1;
}
}
阅读更多
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: