ToB企服应用市场:ToB评测及商务社交产业平台
标题:
算法学习条记(Hello算法)—— 时间复杂度
[打印本页]
作者:
不到断气不罢休
时间:
2024-7-22 02:48
标题:
算法学习条记(Hello算法)—— 时间复杂度
1.1 统计时间增长趋势
时间复杂度分析统计的不是算法运行时间,而是
算法运行时间随着数据量变大时的增长趋势。
// 算法 A 的时间复杂度:常数阶
void algorithm_A(int n) {
System.out.println(0);
}
// 算法 B 的时间复杂度:线性阶
void algorithm_B(int n) {
for (int i = 0; i < n; i++) {
System.out.println(0);
}
}
// 算法 C 的时间复杂度:常数阶
void algorithm_C(int n) {
for (int i = 0; i < 1000000; i++) {
System.out.println(0);
}
}
复制代码
算法 A
:
时间复杂度为
O(1)
,这是由于算法A不管输入的 n 是什么值,它都只实行了一次操作——打印数字0。这意味着算法的运行时间是固定的,与输入的巨细无关。
算法 B
:
时间复杂度为
O(n)
,这是由于算法B中的循环将根据输入的 n 实行 n 次打印操作。当 n 增长时,实行的操作次数也成比例地增长。
算法 C
:
时间复杂度同样为
O(1)
,只管这个算法使用了一个循环,但循环的次数是固定的1000000次,与输入参数 n 的值无关。这意味着无论 n 是什么值,算法C都将实行类似数量的操作,因此运行时间是固定的。
1.2 时间复杂度分析有哪些特点
时间复杂度可以或许有效评估算法效率。
时间复杂度的推算方法更简便。
时间复杂度也存在一定的范围性。
时间复杂度分析本质上是计算“操作数量
欢迎光临 ToB企服应用市场:ToB评测及商务社交产业平台 (https://dis.qidao123.com/)
Powered by Discuz! X3.4