二分查找介绍
二分查找又叫折半查找,要求待查找的序列有序。每次取中间位置的值与待查关键字比较,如果中间位置的值比待查关键字大,则在前半部分循环这个查找的过程,如果中间位置的值比待查关键字小,则在后半部分循环这个查找的过程。直到查找到了为止,否则序列中没有待查的关键字。
二分查找的递归实现与非递归实现
二分查找的的递归实现我之前已经有写过,想看的可以点击跳转,这里就不再讲递归实现了,我们来看二分查找的非递归实现。
public int binarySearch(int[] arr, int length, int findVal) {
//这里的left、right、mid都是表示数组的下标
int left = 0;
int right = length - 1;
while (left <= right) {
int mid = (left + right) / 2;
if (arr[mid] == findVal) {
return mid;
} else if (arr[mid] < findVal) {
left = mid + 1;
} else {
right = mid - 1;
}
}
return