算法_二分查找(折半查找)
程序员文章站
2024-03-20 17:49:22
...
分查找(折半查找)
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;
}
}
上一篇: Vue前后端分离完成文件上传
下一篇: 企业微信通过手机号获取userid