大多数拥有CS学位的人肯定会知道Big O代表什么.它可以帮助我们衡量算法的实际效率(如何),如果你知道你试图解决的问题属于哪个类别,你可以弄清楚是否仍然可以挤出那么少的额外性能.1
但我很好奇,你如何计算或近似算法的复杂性?
1 但正如他们所说,不要过度,过早优化是所有邪恶的根源,没有正当理由的优化也应该得到这个名称.
void function(int N){
for (int i=0; i<N; i++)
for (int j= 0; j< i; j++)
System.out.println("j")
}
Run Code Online (Sandbox Code Playgroud)
对于这个函数,Big O如何依赖于第二个for循环,因为它是j
另外,如果j <i被改为j <N*N,那么大O是否就是O(N ^ 3)呢?