算法快学笔记(十八):史上最全查找算法总结

本文全面总结了查找算法,包括顺序查找、有序表的二分查找、插值查找和斐波那契查找,以及无序数据的简单索引、分块索引和哈希查找等。对于不同场景,如均匀分布的数据,插值查找和斐波那契查找可能提供更高的效率。此外,还提到了B家族的树和红黑树查找在特定情况下的应用。
摘要由CSDN通过智能技术生成

1. 简介

查找算是工作过程中运用最广泛的操作了,操作系统读取文件时需要查找,从数据库读取数据时需要查找…

本文将对常见的查找算法进行总结。

2. 常见算法

2.1 顺序查找

基本思想:

该算法简单粗暴,从头(或是最后)开始遍历,找到要查的数据就停止遍历并返回结果,如果遍历完也没有找到就是查找不成功。

时间复杂度:O(n)

2.2 有序表

2.2.1 二分查找

基本思想:

  1. 将表中间位置记录的关键字与查找关键字比较,如果两者相等,则查找成功;
  2. 否则利用中间位置记录将表分成前、后两个子表,
    1. 如果中间位置记录的关键字大于查找关键字,则进一步查找前一子表,
    2. 否则进一步查找后一子表。
  3. 重复以上过程,直到找到满足条件的记录,使查找成功,或直到子表不存在为止,此时查找不成功

时间复杂度:O(log2n)

2.2.2 插值查找

对于数值变化幅度比较均匀的有序数组,要查的值在数组中的位置基本是可以确定的,例如[10,20,30,40,60,70,80,90,100,120,130,140]这个数组,30是在数组的前半部分,60应该是离30不远的位置,而130则是在数组的后半部分,120,140是在130附近。

二分查找法用在上面的数组中ÿ

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值