`

插值查找算法

阅读更多
#include<stdio.h>
#include<string.h>
#include<math.h>
#include<ctype.h>
#include<stdbool.h>


int Insert_search(int *a, int key, int n)
{
    int pos, low, high;
    low = 0,high = n - 1;
    while(low <= high){
        pos = ((key - a[low]) * (high - low )) / (a[high] - a[low]) + low;
        if(a[pos] < key){
            low = pos + 1;
        } else if(a[pos] == key){
            return pos;
        } else{
            high = pos - 1;
        }
    }
    return -1;
}

int main()
{
    
    int a[13] = {5,15,19,20,25,31,38,41,45,49,52,55,57};
    int k;
    printf("请输入要查找的数字:\n");
    scanf("%d",&k);
    int pos = Insert_search(a,k,13);
    if(pos != -1)
        printf("在数组的第%d个位置找到元素:%d\n",pos + 1,k);
    else
        printf("未在数组中找到元素:%d\n",k);
    return 0;
}

 

分享到:
评论

相关推荐

    查找算法集(顺序查找、二分查找、插值查找、动态查找)

    在给定的代码中,插值查找算法函数sq_Dichotomy_Search1实现了有序数组的插值查找。它的参数包括被查找数组、数组元素个数和被查找的关键值。函数返回的值是目标元素在数组中的下标,如果没有找到则返回-1。 动态...

    查找算法集(顺序查找、二分查找、插值查找、动态查找).docx

    插值查找算法的实现方式是根据目标元素的值和集合的分布情况来确定下一步的查找方向。插值查找算法的时间复杂度为O(loglogn),其中n是集合的元素个数。 在数组实现中,插值查找算法可以使用以下函数实现: ```c ...

    查找算法--插值查找

    数据结构用C++的实现,蓝桥杯,ACM,算法基础,C++入门

    PHP有序表查找之插值查找算法示例

    **插值查找算法详解** 插值查找是一种在有序表中查找特定元素的算法,是对二分查找的一种优化。它的基本思想是根据待查找的关键字与查找表中的最大最小记录的关键字进行比较,然后通过一个插值计算公式来确定下一个...

    算法-理论基础- 查找- 插值查找(包含源程序).rar

    这个源程序可以帮助你更好地理解插值查找算法的细节,并可能包含一些优化技巧,如处理边界情况、防止溢出等。 总的来说,插值查找是一种适用于有序数组的查找算法,尤其在数据分布均匀时能显著提高查找效率。通过...

    C语言二分查找算法[文].pdf

    2. 插值查找算法:插值查找算法是一种基于二分查找算法的优化算法,该算法通过估算数组中元素的分布情况来提高查找效率。 3. 散列查找算法:散列查找算法是一种使用散列函数将元素映射到数组中的查找算法,该算法...

    二分查找、插值查找、斐波那契查找对比C++的实现

    本文将详细介绍三种常见的查找算法:二分查找、插值查找和斐波那契查找,并以C++语言为例,阐述它们的核心实现原理。 1. **二分查找(Binary Search)** 二分查找是一种基于有序数组的高效查找算法。它的工作原理...

    插值搜索算法介绍和java代码实现

    插值搜索算法是一种高效的搜索算法,它是在有序数组中查找特定元素的位置的一种改进算法。与二分搜索算法相比,插值搜索算法根据搜索值在数组中的分布情况,动态地选择搜索范围,从而更快地找到目标元素。 插值搜索...

    二分查找、插值查找、斐波那契查找对比C++实现

    二分查找,O(logn)的经典查找算法,实现在一个非下降序列中快速查找一个值是否存在。 插值查找是对二分查找的一个扩展,对于接近线性递增的序列效率极高,其他情况效率一般。 斐波那契查找,纯娱乐用的东西,存在...

    吉大数据结构课程 数据结构与算法课程 由浅入深 讲解清晰 08 第八章 查找(共91页).pptx

    随着时间的推移,对半查找演变为更复杂的一致对半查找、斐波那契查找和插值查找算法,这些算法提高了在特定情况下的查找效率。 在树结构方面,课程提到了1952年A. I. Dumey提出的树插入算法,以及后来的二叉查找树...

    C#排序查找

    4. **插值查找算法**: 插值查找是对二分查找的一种优化,它根据目标值相对于数组中值的分布来调整查找的步长。`InsertHalf`函数执行插值查找,计算目标值与当前中间元素的相对位置,然后在相应区间内查找。这种...

    7种插值算法

    4. **有序表的检索法(LOCATE, HUNT)**:这些方法主要用于快速查找插值点,如二分法(`LOCATE`)通过不断减半搜索区间来定位目标点,关联法(`HUNT`)则通过线性搜索找到最近的数据点。这两种方法在大数据集下的...

    七大查找算法及C++源码.pdf

    除了上述两种查找算法,还有其他几种查找方法,如插值查找、斐波那契查找、树表查找和哈希查找。这些方法在不同的场景下各有优势,比如插值查找和斐波那契查找是对二分查找的优化,适用于接近均匀分布的数据;树表...

    Java排序算法和查找算法

    该工具包含有Java一些比较常见的排序算法和查找算法。 排序算法包括:冒泡排序、选择排序 、插入排序、希尔排序、快速排序、归并排序、基数...查找算法包括:线性查找、二分查找、插值查询、斐波那契(黄金分割法)、

    数据结构查找算法

    本篇文章将详细地介绍几种常用的查找算法及其应用场景,包括顺序查找、二分查找、插值查找、斐波那契查找等线性结构的查找方法以及树表查找、分块查找、哈希查找等非线性结构的查找方法。 #### 二、线性结构查找...

    FPGA中实现Bayer模板双线性插值算法的改进.pdf

    本文聚焦于FPGA(现场可编程门阵列)中Bayer模板图像数据的处理,提出了一种改进的双线性插值算法。这一算法针对的是单板CMOS图像传感器获取的原始数据,旨在通过硬件加速提高图像处理的质量。Bayer模板,作为一种...

    插值查找.zip

    搜索算法:搜索算法用于在数据集中查找特定元素的算法。常见的搜索算法包括线性搜索、二分搜索等。 图算法:图算法用于处理图结构的数据,如最短路径算法(如Dijkstra算法、Floyd-Warshall算法)、最小生成树算法...

    图像线性插值Verilog代码

    图像线性插值是一种在数字图像处理中广泛使用的算法,其主要目的是提高图像的分辨率或者在缩放过程中平滑像素间的过渡。在FPGA(Field-Programmable Gate Array)开发中,用Verilog硬件描述语言实现这种算法可以达到...

Global site tag (gtag.js) - Google Analytics