import java.util.Arrays;
public class BinarySearch {
//查找出来的位置是数组的位置,从0开始
public static int rank(int key, int[] a){
//数组必须是有序
int lo = 0;
int hi = a.length - 1;
while(lo <= hi){
int mid = lo + (hi -lo) /2;
if(key < a[mid]) hi = mid - 1;
else if(key > a[mid]) lo = mid + 1;
else return mid;
}
return -1;
}
public static void main(String[] args) {
// TODO Auto-generated method stub
int[] a = new int[]{1,4,2,3,5,6,0,9,7,8};
Arrays.sort(a);
System.out.println(rank(5,a));
}
}

本文介绍了一种在有序数组中进行高效查找的算法——二分查找。通过不断将查找区间减半,直到找到目标元素或确定元素不存在为止,实现了快速查找。文章提供了完整的Java代码实现,并演示了如何对数组进行排序后使用该算法。
4263

被折叠的 条评论
为什么被折叠?



