数据结构-查找总结

本文总结了多种查找算法,包括插值查找、斐波那契查找、哈希查找、二叉查找树和红黑树等。详细探讨了每种算法的思想、特点和适用场景,并提供了相关链接以深入学习。对于哈希查找,强调了其在处理冲突上的优势,而对于二叉查找树,提到了退化为链表的问题和解决方案如AVL树和红黑树。红黑树的特性及插入调整策略也进行了阐述。
摘要由CSDN通过智能技术生成

一、插值查找

  • 主要思想:根据要查找的关键字key与查找表中最大最小记录的值比较的查找方法。
  • 特点:
    a. 比较适合分布均匀的查找。如果有序序列不满足均匀分布的特征,则插值查找算法的查找效率不如二分查找算法
    b. 与折半查找思想类似。唯一的区别在于,每次与目标元素做比较的元素并非搜索区域内的中间元素,而是根据公式按比例计算出的值 m i d = l o w + k e y − a [ l o w ] a [ h i g h ] − a [ l o w ] ∗ ( h i g h − l o w ) mid ={ low+{ {key-a[low]}\over{a[high]-a[low]} }* (high-low)} mid=low+a[high]a[low]keya[low](highlow)
    int InsertionSearch(int a[], int value, int low, int high)
    {
         
        int mid = low+(value-a[low])/(a[high]-a[low])*(high-low);
        if(a[mid]==value)
            return mid;
        if(a[mid]>value)
            return InsertionSearch(a, value, low, mid-1);
        if(a[mid]<value)
            return InsertionSearch(a, value, mid+1, high);
    }
    

二、斐波那契查找

参考链接

  • 主要思想:同样来源于折半查找的延伸,mid的取值不是从中位取,大概是通过斐波那契数列得到在原始数据的0.618位置。要查找元素为key,a为查找数组,low为查找下界,high为查找上界,mid为根据斐波那契数列计算出的值: m i d = l o w + F [
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值