时间复杂度

目录

文章目录

前言

一、什么是时间复杂度?

二、如何描述时间复杂度?

1.不同数据规模的差异

2.复杂表达式简化

3.O(logn)中的log以什么为底?

总结



前言

        时间复杂度分析是学习算法必不可少的一环,干翻算法,先从认识时间复杂度开始!


提示:以下是本篇文章正文内容,下面案例可供参考


一、什么是时间复杂度?

         时间复杂度(算法的渐进时间复杂度):假设算法的数据规模为n,操作单元数量用函数f(n)表示,随着数据规模n的增大,算法执行时间的增长率和f(n)的增长率相同,这个增长趋势即为时间复杂度,记为O(f(n))。

        《算法导论》中说,O用来表示上界,当用它作为算法在最坏情况下运行时间的上界时,就是对任意数据输入的运行时间的上界。但实际应用中,我们更多地考虑了一般情况输入数据的形式对程序运行时间也有很大影响,数据用例不一样,时间复杂度也是不一样的。


二、如何描述时间复杂度?


1.不同数据规模的差异

        在决定使用哪些算法时,不是时间复杂度越低越好(因为简化后的时间复杂度忽略了常数项等),还要考虑数据规模。数据规模比较大时,就可以忽略常数项等,此时有如下算法时间复杂度排行:

        O(1) < O(logn) < O(n) < O(n^2) < O(n^3) < O(2^n)

        常数阶 < 对数阶 < 线性阶 < 平方阶 < 立方阶 < 指数阶


2.复杂表达式简化

        简化法:如O(2*n^2 + 10*n+1000)

        ①去常数项:O(2*n^2 + 10*n)

        ②去常数系数:O(n^2 + n)

        ③只保留最高项:O(n^2)

3.O(logn)中的log以什么为底?

用一个简单的例子来解释:

        O() = O(*

由2中简化规则可得

          O() = O( 

因此以什么为底可以忽略



总结

初识时间复杂度,个人感觉做题的时候多分析分析就能很好地掌握了~

       

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

橙南花已开

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值