Java 作为运行时间N的函数的增长顺序
我在练习复杂的算法,我该怎么做?!我不明白这个问题,也不明白我要做什么计算才能得到它。。。任何帮助都太好了Java 作为运行时间N的函数的增长顺序,java,algorithm,time-complexity,big-o,Java,Algorithm,Time Complexity,Big O,我在练习复杂的算法,我该怎么做?!我不明白这个问题,也不明白我要做什么计算才能得到它。。。任何帮助都太好了 int N = 50 ; int sum = 0 ; for (int n = N ; n > 0 ; n/=2 ) { for (int i = 0 ; i < n ; i++) { sum++ ; } } int N=50; 整数和=0; 对于(int n=n;n>0;n/=2){ 对于(int i=0;i
int N = 50 ;
int sum = 0 ;
for (int n = N ; n > 0 ; n/=2 ) {
for (int i = 0 ; i < n ; i++) {
sum++ ;
}
}
int N=50;
整数和=0;
对于(int n=n;n>0;n/=2){
对于(int i=0;i
您可以在外循环的每次迭代中,根据内循环的N
写入迭代次数,如下所示:
T(N) = N + N/2 + N/4 + ... + 1 = N (1 + 1/2 + 1/4 + ...+ 1/(2^log(N)) = Theta(N)
因此,时间复杂度也在O(N)
中