插值查找

来源:互联网 发布:java 网页开发工具 编辑:程序博客网 时间:2024/05/17 06:28

时间复杂度为:O(logn)
差值查找:根据要查找的关键字key与查找表中最大最小记录的关键字比较后的查找方法,
核心是公式
(key - a[low])/(a[high] - a[low])
对于表长较大,而关键字分布比较均匀的查找表查找比折半查找好的多。
具体实现:
int bsearchWithoutRecursion(intarray[],int low,int high,int target)
{
while(low<=high)
{
int mid = low + (hith - low) * (key - a[low)/(a[high] - a[low]); //折半查找中为 int mid=(low+high)/2;
if(array[mid]>target)
high=mid-1;
elseif(array[mid]

0 0