在有序的数组中获取目标值的地址——二分查询算法(java实现)

来源:互联网 发布:北京软件开发外包 编辑:程序博客网 时间:2024/06/05 18:07

二分查询法,可以理解为把一窜已经有序的 int 数组不断地一分为二来进行查询,关键在于对比查询值与中间值,看查询值在前半段数据或是后,再将所在的数据段重新分割,继续查询,直到锁定该查询值。

自定义数组,从中获取3的地址。

public class BinarySearch {public static void main(String[] args) {int[] a = {0,1,2,3,4,5,6,7,8,9,10,11};System.out.println(rank(3, a)+1);}public static int rank(int key,int[] a) {int low =0;int high = a.length-1;while (low<high) {int min = high - low;if (key<a[min]) {high = min-1;}else if (key>a[min]) {low = min+1;} else {return min;}}return -1;}}

结果:4

(结果是3,或者4看具体需要设定,这里是指数组中第四个数)


阅读全文
0 0