• 忘掉天地
  • 仿佛也想不起自己
bingliaolongBingliaolong  2020-05-09 08:22 Aet 隐藏边栏 |   抢沙发  5 
文章评分 3 次,平均分 5.0

简述

也叫折半查找,性能优异。

但是所查找的数列必须是有序序列。

复杂度

  • 时间复杂度
    • log2(N)

实现

非递归实现

递归实现

插值查找

  1. 二分查找每次都会计算出一个mid,然后拿这个mid的值去做比较

$$
mid = \frac{(low+high)}{2}
$$

$$
mid = \frac{low+high}{2} = low + \frac{1}{2}(high - low)
$$

  1. 插值查找本质就是对上面这个算法进行优化,方案如下:

$$
mid = low + \frac{key - a[low]}{a[high] - a[low]}(high - low)
$$

  1. 示例,a[11] = {0,1,16,24,35,47,59,62,73,88,99}

    1. 查找16,key为16
    2. low为1,high为10,a[low]为1,a[high]为10
  2. 插值查找是根据要查找的关键字key与查找表中最小最大记录的关键字比较后的查找方法,其核心就在于上面这个公式。

本文为原创文章,版权归所有,欢迎分享本文,转载请保留出处!

bingliaolong
Bingliaolong 关注:0    粉丝:0 最后编辑于:2022-01-26
Everything will be better.

发表评论

表情 格式 链接 私密 签到
扫一扫二维码分享