2016-07-23 36 views
-1
for(i=0;i<n;i+=2) { 
    for(j=1;j<=n;j*=2) { 
     printf(“%d,%d\n”,i,j); 
    } 
} 

Was wäre die große O-Notation dieser Schleife?Ermitteln der BIg O-Notation dieser Schleife

+1

Was denkst du? – Henry

+0

Mögliches Duplikat von [Big O, wie berechnen/approximieren Sie es?] (Http://stackoverflow.com/questions/3255/big-o-how-do-you-calculate-approximate-it) –

Antwort

3

Die äußere Schleife wird n/2 Iterationen tun, und jede innere Schleife wird lg_2(n) Iterationen tun. Die Gesamtlaufzeit sollte O(n*lgn) sein (hier verwende ich lg, um Log-Base 2 darzustellen).