008.【查找算法】六种查找算法的时间复杂度

1. 算法概述

  • 顺序查找算法:按照数据的顺序一项一项逐个查找,所以不管数据顺序如何,都要从头到尾的遍历一次。速度比较慢,它的时间复杂度是 T=O(n)。
  • 二分查找算法:将数据分割成两等份,然后用键值(要查找的数据)与中间值进行比较,逐个缩小查找范围。速度比顺序查找快,它的时间复杂度是 T=O(log n)。
  • 插补查找算法:按照数据的分布,利用公式预测键值所在的位置,快速缩小键值所在序列的范围,慢慢逼近,知道查找到数据为止,这中算法比二分法查找速度还快,它的时间复杂度为 T=O(log log(n))。
  • 分块查找算法:要求是顺序表,它是顺序查找算法的一种改进方法,它的时间复杂度是 T=O(log以2为底m的对数+N/m)。
  • 斐波拉契查找算法:斐波拉契查找算法就是在二分法的基础上根据斐波拉契数据进行分割。用键值(想要查找的数据)与黄金分割点进行比较。逐渐缩小查找范围。它的时间复杂度是 T=O(log 2n)。
  • 哈希查找算法:把一些复杂的数据,通过某种函数映射关系,映射成更加易于查找的方式。这种方法速度最快,它的时间复杂度是 T=O(1)。
查找算法的名称时间复杂度(大O表示法)
顺序查找算法O(n)
二分查找算法O(log n)
插补查找算法O(log log n)
分块查找算法O(log以2为底m的对数+N/m)
斐波拉契查找算法O(log 2n)
哈希查找算法O(1)

上述时间复杂度都是按照各个算法的平均(理想)复杂度进行计算的。实际应用中。情况的不同复杂度就会不同。

  • 7
    点赞
  • 34
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值