Day7 - 二分法

二分法查找

算法:当数据量很大适宜采用该方法。采用二分法查找时,数据需是有序不重复的。
基本思想:假设数据是按升序排序的,对于给定值x,从序列的中间位置开始比较,如果当前位置值等于x,则查找成功;若x小于当前位置值,则在数列的前半段中查找;若x大于当前值则在数列的后半段中继续查找,直到找到为止。

代码示例
class Demo{
public static void main(String[] args){
int[] arr = new int[]{1,2,3,4,5,7,11,45,78};
int keyNum = 11;//目标数字
int targetNumIndex = binarySearch(arr,keyNum);
System.out.println(targetNumIdex);
}
public static int binarySearch(int[] arr,int keyNum){
int start = 0;//开始游标
int end = arr.length - 1;//结束游标
while(start<=end){
int middleIndex = (start + end)/2;
if(keyNum>arr[middleIndex]){
start = middleIndex+1;
}else if(keyNum

你可能感兴趣的:(Day7 - 二分法)