二分查找 学习笔记
一、简介
(一)定义:
二分查找也称折半查找(Binary Search),它是一种效率较高的查找方法。但是,折半查找要求线性表必须采用顺序存储结构,而且表中元素按关键字有序排列.
(二)例题:
二、思路分析
三、代码实现
package com.example.demotest.binary;
/**
* @author wanglin
* @version 1.0
* @date 2022-03-07 周一
*/
public class BinarySearch {
public static void main(String[] args) {
int[] arr = {1, 8, 10, 89, 100, 123};
int resultIndex = binarySearch(arr, 0, arr.length - 1, 123);
System.out.println("数组下标索引resultIndex: " + resultIndex);
}
/**
* 二分查找算法
*
* @param arr 数组
* @param left 左边的索引
* @param right 右边的索引
* @param findVal 要查找的值
* @return 若找到就返回下标,否则就返回-1
*/
public static int binarySearch(int[] arr, int left, int right, int findVal) {
//当 left > right 时,说明递归整个数组,但是都没有找到这个值
if (left > right) {
return -1;
}
int mid = (left + right) / 2;
int midVal = arr[mid];
if (findVal > midVal) {
//向右递归
return binarySearch(arr, mid + 1, right, findVal);
} else if (findVal < midVal) {
//向左递归
return binarySearch(arr, left, mid - 1, findVal);
} else {
return mid;
}
}
}
关注林哥,持续更新哦!!!★,°:.☆( ̄▽ ̄)/$:.°★ 。