每日一言 : 当我们真正热爱这世界时,我们才真正生活在这世上。——泰戈尔
二分搜索
什么是二分搜索
二分搜索又叫二分查找,是一种效率较高的查找方法,比如数据库的索引查找方式(哈希索引除外)就是一种二分、三分或者多分查找的算法,分的多少和索引结构有关。
要求线性表为有序表,并且要用向量作为表的存储结构,二分搜索的基本思想是先确定待查找记录所在的范围,然后逐步缩小范围,直到找到or找不到该记录位置。
二分查找的步骤如下
- 先确定中间位置:
middle=(left+right)/2
- 将待查找的
key
值和data[middle].key
值相比较,相等则查找成功并返回该位置,否则重新确定查找空间,继续二分查找,具体方法如下:- 如果
data[middle].key
大于key
,由于data为有序线性表,可以知道data[middle->right].key
全部都大于key,因此可以推断,若数据表中存在关键字符合的key,那么一定位于【left->middle】子表范围区间内 - 反之亦然,
data[middle].key
小于key,若数据表中存在关键字符合的key,那么一定位于【middle–》right 】子表范围区间内
- 如果
java 实现如下
public static void main(String[] args) {
int [] array = {
1,2,3,4,5,6,7,8,