二分查找
一、 二分查找简介:
二分查找也称折半查找(Binary Search),它是一种效率较高的查找方法。时间复杂度为O(logn)。
注意: 二分查找要求线性表必须采用顺序存储结构,而且表中元素按关键字有序排列。这是实现二分查找的前提。(排序可以使用sort方法)
二、 二分查找的实现方法:
1、普通的迭代:
public static void main(String[] args) {
int[] arr = {
10,14,16,25,28,30,35,88,100};
int index1 =binarySearch(arr,100);
int index2 =binarySearch(arr,9);
int index3 =binarySearch(arr,101);
System.out.println("100的索引为:"+index1);
System.out.println("9的索引为:"+index2)
System.out.println("101的索引为:"+index3);
}
//二分查找,递归方法
public static int binarySearch(int[] arr,int key){
int low = 0;
int high = arr.length-1;
while (low <= high){
int mid = (low + high)/2;
if (arr[mid] < key){
low = mid+1;
}else if (arr[mid] > key){
high = mid -1;
}else if (arr[mid] == key)
return mid;
}
return