这两个是两个代码段。我希望两个代码段中的Big-o分别有明确的解释。我已经陷入了这些。请不要复制这个,我只想要正确答案。
var data;
d3.csv("../Data/crime_2016.csv", function(d){
data = d;
var length = data.length;
});
答案 0 :(得分:2)
第一个:
for(int i=1;i<N;i*=2){
for(int j=0;j<i;j++){
sum++;
}
我们走了,
对于外循环for(int i=1;i<N;i*=2)
时间复杂度:订单日志(N)
恩。达到i = 16,当N = 17时,循环将运行5次
现在让我们计算以N
表示的总时间复杂度/元素Outer Loop iteration number | Number of elements generated inside the Inner loop | Power of 2
--------------------------- | -------------------------------------------------- | -----------
1 | 1 | 0
2 | 2 | 1
3 | 4 | 2
4 | 8 | 3
等等
因此,外部循环和外部循环的log(N)迭代生成的大致总元素是
Σ k = 0 k = Log(N) 2 k
当你解决这个问题时,你得到的解决方案就是N
因此,结合两个循环得到: Ñ
第二个很直接 -
for(int i=1;i<N;i*=2){
for(int j=0;j<N;j++){
sum++;
}
外环:记录(N)
内环:N
因此总计:N Log(N)