1.二分查找算法分析
2.代码实现
package com.vince.bs;
import java.util.Arrays;
/**
* 二分查找法
* @author lamp
*
*/
public class BinarySearchDemo {
public static void main(String[] args) {
int[] number = {4,58,11,34,88,45};
//必须保正数列是有序的
Arrays.sort(number);//排序
int index = binarySearch(number,11);
System.out.println(index);
}
//二分查找算法实现
private static int binarySearch(int[] x,int n) {
int start = 0;//起始位置
int end = x.length-1;//结束位置
int mid = -1;
while(start<=end){
mid = (start+end)/2;//求中间位置
if(x[mid]==n){
//表示要找的值已经找到
return mid;
}else if(x[mid]<n){
start = mid+1;
}else if(x[mid]>n){
end = mid -1;
}
}
return -1;
}
}