二分查找算法:
public class BinarySearch {
//data为有序数组
public static int binarySearch(int[] data , int key)
{
int low = 0 ;
int high = data.length - 1 ;
while(low <= high)
{
int mid = (low + high)/2 ;
if(data[mid] > key) high = mid - 1 ;
else if(data[mid] < key) low = mid + 1 ;
else return mid ;
}
return -1 ;
}
public static void main(String[] args) {
int[] data = {1,2,3,4,5,6,7};
System.out.println(binarySearch(data, 6));
}
}
输出5