算法时间复杂度

小记我们把 算法需要执行的运算次数用 n 的函数 表示,即 T(n) 。为了 评估算法需要的运行时间 ,简化算法分析,引入时间复杂度的概念:用来度量算法的运行时间,记作: T(n) = O(f(n))。它表示随着 输入大小n 的增大,算法执行需要的时间的增长速度可以用 f(n) 来描述。1.常数项对函数的增长速度影响并不大,所以当 T(n) = c,c 为一个常数的时候,那么这个算法的时间复杂度为O(1);如果 T(n) 不等于一个常数项时,直接忽略常数项。2.高次项对于函数的增长速度的影响是很大
摘要由CSDN通过智能技术生成

小记

我们把 算法需要执行的运算次数用 n 的函数 表示,即 T(n) 。
为了 评估算法需要的运行时间 ,简化算法分析,引入时间复杂度的概念:用来度量算法的运行时间,记作: T(n) = O(f(n))。它表示随着 输入大小n 的增大,算法执行需要的时间的增长速度可以用 f(n) 来描述。

1.常数项对函数的增长速度影响并不大,所以当 T(n) = c,c 为一个常数的时候,那么这个算法的时间复杂度为O(1);如果 T(n) 不等于一个常数项时,直接忽略常数项。

2.高次项对于函数的增长速度的影响是很大的。n^3 的增长速度是远超 n^2 的,同时 n^2 的增长速度是远超 n 的。 同时因为要求的精度不高,所以我们直接忽略低次项与常数:
T(n) = n^3 + n^2 + n + 1,此时时间复杂度为 O(n^3)。
也可以理解为只取最高项,,同时忽略它的系数,那就是最复杂的计算过程

3.假设一个循环,循环体的时间复杂度为 O(n),循环次数为 m,则这个
循环的时间复杂度为O(n×m)

//例1
void test(int n) {
for(int i = 0; i < n; i++) { // 循环次数为 n
printf(“Hello, World!\n”); // 循环体时间复杂度为 O(1)
}
//则该时间复杂度为 O(n ×

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

Janthrven

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

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

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

打赏作者

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

抵扣说明:

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

余额充值