假设我有两个algorithm: for (int i = 0; i < n; i++) { for (int j = 0; j < n; j++) { //do something in constant time } } 这当然是O(n^2) 。 假设我也有: for (int i = 0; i < 100; i++) { for (int j = 0; j < n; j++) { //do something in constant […]
我需要计算以下代码的时间复杂度: for (i = 1; i <= n; i++) { for(j = 1; j <= i; j++) { // Some code } } 是O(n ^ 2)吗?
大多数拥有CS学位的人肯定知道Big O代表什么。 它可以帮助我们衡量一个algorithm的效率如何,如果你知道你想要解决的问题在哪个类别中,你可以找出是否仍然可以排除这个额外的性能。 1 但我很好奇, 你如何计算或近似algorithm的复杂性? 1 但是正如他们所说的那样,不要过头, 不成熟的优化是万恶之源 ,没有正当理由的优化也应该得到这个名称。