二分查找和插值查找都是基于减而治之的原理
1)细节:二分查找的范围的下标:lo和hi代表[lo,hi),因此,选择mid的时候,两部分是[lo,mid),和[mid+1,hi);
插值查找的含义类似于在字典中确定一个字母的范围,比如选择b的话,会在较前的页码处查找,这里,字母相当于数组的下标, 而页码相当于要查找的元素;
2)效率:查找对数值的规模进行折半,因此二分查找的时间复杂度为logn,或者说是共有n个十进制位的的数
插值查找在每次查找后,数的规模变为根号n, 可以看作是有logn位的二进制数,每次规模减小为根号n,则每次二进制位减小为0.5logn,则时间复杂度为loglogn
3)关系:二者的思想其实是一致的,只不过是作为查找轴点的选择方法不同;
插值查找需要数据的分布在一定范围内均匀,否则容易较小数据受到扰动;
插值查找更适合于大规模的查找。
本文对比了二分查找与插值查找两种算法。详细介绍了两种查找方式的细节、效率及适用场景,并分析了它们在数据分布上的要求。通过对比,读者可以更好地理解这两种查找算法的特点。
502

被折叠的 条评论
为什么被折叠?



