(这是根据作业总结的,有错误帮我更一下哈)
语句频次及时间复杂度
要计算 算法的时间复杂度 ,先要掌握什么是算法的频度
算法频度就是基本操作执行次数的总和 (f(n) n是执行问题的规模 )
再对整个算法的频次进行以下操作:
- 去掉常数项
- 只保留最高阶项
这就是时间复杂度 T(n) ,有时用O(f(n))表示
先说我在做题时遇到的问题:
- do while 或 while 循环语句中将判断条件计入循环频次
- 认为do while 语句比 while 多执行一次
- 错误的认为if else 两个语句,实际上是一个
- 要记得执行次数需要[取整]但是时间复杂度不需要
解答
- 老师的解答要记住鸭
“考虑算法复杂度时,最主要考虑的是需要重复多次的操作;一个while的判断句和while里面的操作执行频次是一样的;因此在利用大O数量级进行计算时,可以只主要考虑while里面的循环频次”
- do while 和 while两个语句执行次数相同
常见的特殊例子(记下来)
1.嵌套循环 2层循环
k=0;
for (i=1;i<n;i++) //n次
{
for (j