Rust算法复杂度-大O分析
主要就是统计算法执行语句计数T(n)。
- 普通n条语句,n为常数,算法复杂度:O(n)
for i in 0..26 {sum += pos[i];
}
- 有循环嵌套的n*n,算法复杂度:O(
)。
for x in 0..100 {for y in 0..100 {sum += p[y] * p[x];}
}
根据数据的数量级,不同的数量级函数,如下:
用更直观的复杂度曲线图,如下:
一般情况下(n>10),O() > O(
) > O(
) > O(nlogn) > O(n) > O(logn) > O(1)
注意:n=10时,会大于
。(
,
)。
- 总结Rust集合类型的性能
线性集合类型的性能:
非线性集合类型的性能: