时间、空间复杂度O(n)该如何计算?(C语言)

🖊作者 : Djx_hmbb
📘专栏 : C语言
今日分享 : 所有的努力都在慢慢变得清晰
请添加图片描述

一、理解时间、空间复杂度:为什么要计算时间、空间复杂度?

答:可以判断你的代码是否更高效,更简便。比如,如果你和小王同时设计出一款程序,公司肯定选择更优,更高效的,这时就会用到时间复杂度和空间复杂度了。
时间复杂度: [运行该算法的运行时间]
空间复杂度: [是一个数字表达式->运行过程中临时占用存储空间的大小=变量的个数,即由申请的额外空间来确定]

二、计算时间、空间复杂度的方法(别名:大O趋近法,即O(n)):

  • 1.用常数1代替所有的加法常数;
  • 2.在修改后的运行次数函数中,只保留最高阶项;
  • 3.如果最高阶项存在且系数不为1,则去掉常数;
  • 4.一般算时间复杂度,都是看最慢情况;
  • 5.二分查找/折纸:O(logN)。
    注意: 这里的logN是指:log2N,而非log10N。因为计算机无法写出这种格式,所以简写成logN,有些书上还会写成lgN。

三、举例理解:

1.用常数1代替所有的加法常数。

eg:

main()
{
	int num = 100;
	for(int i = 0 ; i<num ; i++)
	{printf("%d ",num);
	}
	return 0;
}

这里的时间复杂度为:O(1)

2.在修改后的运行次数函数中,只保留最高阶项

注意:这里的修改是指,自己化简过后的式子中,只保留最高阶项
eg1:
在这里插入图片描述
这里的时间复杂度为:O(n^2)
eg2:自己化简过后的式子中,只保留最高阶项
在这里插入图片描述
这里的时间复杂度为:O(n^2)

3.如果最高阶项存在且系数不为1,则去掉该系数

在这里插入图片描述
这里的时间复杂度为:O(n^2)

4.一般算时间复杂度,都是看最慢情况;

在这里插入图片描述
这里的时间复杂度为:O(n)

5.二分查找/折纸:O(logN)

注: 这里的log没有下标,在前面有讲解过哦~

在这里插入图片描述
这里的时间复杂度为:O(log2N)

四、总结:

  • O(logN)很少用到
  • 时间复杂度用到的更多
  • 空间复杂度的计算中:普通的函数调用不用看参数,但是递归要看!!!

感谢家人的阅读,若有不准确的地方 欢迎在评论区指正!

家人们,点个请添加图片描述再走呗~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

D. Star.

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

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

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

打赏作者

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

抵扣说明:

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

余额充值