Big O La Notation Des Devoirs--Fragment De Code De L'Algorithme D'Analyse?

Pour les devoirs, j'ai été donné le 8 fragments de code d'analyser et de donner un Grand-Oh notation pour le temps d'exécution. Quelqu'un peut-il me dire si je suis sur la bonne voie?

//Fragment 1
for(int i = 0; i < n; i++)
    sum++;

Je pense à O(N) pour le fragment 1

//Fragment 2
for(int i = 0; i < n; i+=2)
    sum++;

O(N) pour le fragment 2 ainsi

//Fragment 3
for(int i = 0; i < n; i++)
    for( int j = 0; j < n; j++)
        sum++;

O(N^2) pour le fragment 3

//Fragment 4
for(int i = 0; i < n; i+=2)
    sum++;
for(int j = 0; j < n; j++)
    sum++;

O(N) pour le fragment 4

//Fragment 5
for(int i = 0; i < n; i++)
    for( int j = 0; j < n * n; j++)
        sum++;

O(N^2) pour le fragment 5, mais le n * n est en me jetant un peu donc je ne suis pas tout à fait sûr

//Fragment 6
for(int i = 0; i < n; i++)
    for( int j = 0; j < i; j++)
        sum++;

O(N^2) pour le fragment 6 ainsi

//Fragment 7
for(int i = 0; i < n; i++)
    for( int j = 0; j < n * n; j++)
        for(int k = 0; k < j; k++)
            sum++;

O(N^3) pour le fragment 7, mais une fois de plus le n * n est me jetant hors

//Fragment 8
for(int i = 1; i < n; i = i * 2)
    sum++;

O(N) pour le fragment 8

  • Je suis en désaccord avec la "localisée" commentaire. Le calcul de Grand-Oh est un élément central de l'analyse d'algorithme. Spécifiques des exemples de code avec les estimations de la Grande-Oh peut être extrêmement précieux pour les gens qui essaient de devenir à l'aise dans ce domaine.
InformationsquelleAutor 101010110101 | 2008-10-19