欢迎光临散文网 会员登陆 & 注册

8.4插值查找算法

2021-12-22 20:21 作者:取悦疾风  | 我要投稿

内容来自尚硅谷Java数据结构与java算法(Java数据结构与算法)_哔哩哔哩_bilibili

写在前面:本文内容大致和原视频内老师的笔记内容相同,会偶尔插入自己的注释和理解,尽量会完成作业

8.4插值查找算法

插值查找原理介绍:

1.      插值查找算法类似于二分查找,不同的是插值查找每次从自适应mid处开始查找。

2.      将折半查找中的求mid索引的公式,low表示左边索引left,high表示右边索引right, key就是前面我们讲的findVal

1.      int mid = low + (high - low) * (key - arr[low])/ (arr[high] - arr[low]);/*插值索引*/对应前面的代码公式:

int mid = left +(right - left) * (findVal - arr[left])/ (arr[right]- arr[left])

2.      举例说明插值查找算法1-100的数组

8.4.1插值查找应用案例

请对一个有序数组进行插值查找{1,8,10,89,1000,1234},输入一个数看看该数组是否存在此数,并且求出下标,如果没有就提示"没有这个数"。

代码实现

8.4.2插值查找的注意事项

1.      对于数据量较大,关键字分布比较均匀的查找表来说,采用插值查找,速度较快

2.      关键字分布不均匀的情况下,该方法不一定比折半查找要好


8.4插值查找算法的评论 (共 条)

分享到微博请遵守国家法律