时间复杂度

                         让编程改变世界Change the world by program---小昝

当我们参加比赛,例如蓝桥杯、ACM…时,往往一个题目都会有内存限制,而且学好算法必须要明白算法的复杂程度,同时时间复杂度也是上研究生的一个必备知识点,所以我们有必要去研究一下算法的时间复杂度(时间复杂度、空间复杂度)
判断一个算法的效率时,函数中的常数和其他次要项常常可以忽略,而更应该关注主项(次数最高项)的阶数。
判断一个算法好不好,我们不能通过少量的数据判断算法的好坏,不能以偏概全。
时间复杂度:看的是算法执行时间的增长率(看潜力,不看现在的状态)。
一般情况下,随着输入规模n的增大,T(n)增长最慢的算法为最优算法。
时间复杂度攻略:
*用常数1取代运行时间中的所有加法常数 注:1+1+…+1=1 O(1)
*在修改后的运行次数函数中,只保留最高阶项。
*如果最高阶项存在且不为1,则去除于这个项相乘的常数。
*得到的最后结果即是大O阶。

常见时间复杂度

常见时间复杂度

复杂度曲线图

这里写图片描述

复杂度曲线图

这里写图片描述

常见时间复杂度比较

这里写图片描述

最坏运行时间

最坏运行时间是一种保证。在应用中,这是一种最重要的需求,通常除非特别指定,我们提到的运行时间都是最坏情况的运行时间。

算法空间复杂度

空间换取时间,时间换取空间。
举个例子:这里写图片描述
到底哪一种方法好,其实还是要看具体情况。

总结

当直接要让我们求“复杂度”时,通常指的是时间复杂度。显然对时间复杂度的追求更是属于算法的潮流!

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值