二分法查找

122 阅读1分钟

本文已参与「新人创作礼」活动,一起开启掘金创作之路。

二分法(折半查找)
前提是在已经排好序的数组中,通过将待查找的元素与中建索引值对应的元素进行比较,若大于中建索引值对应的元素,去右半部分查找,负责,去业左半部分查找
// 必须保证数列是有序的
int[] nums = {10,20,50,65,88,90};
int test9 = test9(nums,88);
System.out.println(test9);
}
public static int test9(int[] nums,int key) {
int start = 0;//开始下标
int end = nums.length-1;//结束下标
while (start <= end) {
int middle = (start+end)/2;
if (nums[middle] < key) {
start = middle + 1;
}else if(nums[middle] > key){
end = middle - 1;
}else {
return middle;
}
}
return -1;
}