2016-02-16 5 views
0

Итак, я готовлюсь к экзамену, а 25% этого экзамена - по Big-O, и я как бы теряюсь в том, как получить сложность и Big-O от алгоритма. Ниже приведены примеры ответов, мне просто нужно объяснение того, как были ответы, и рассуждения о том, почему некоторые вещи выполняются, это лучшее объяснение, которое я могу дать, потому что, как упоминалось выше, я не знаю этого очень хорошо:Сложность и Big-O алгоритма

int i =n; //this is 1 because it is an assignment (=) 
    while (i>0){    //this is log10(10)*(1 or 2) because while 
     i/=10; //2 bc/and = // loops are log base (whatever is being /='d 
    } //the answer to this one is 1+log10(n)*(1 or 2) or O(logn) 
     //so i know how to do this one, but im confused when while and for 
     //loops nested in each other 

    int i = n; int s = 0; 
    while (i>0){ 
     for(j=1;j<=i;j++)s++;{ 
     i/=2; 
    } //the answer to this one is 2n +log2(n) + 2 or O(n) 
     //also the i/=2 is outside for loop for this and the next one 

    int i = n; int s=0 
    while (i>0){ 
     for(j=1;j<=n;++J) s++; 
     i/=2; 
    } //answer 1+nlogn or O(nlogn) 

    int i = n; 
     for(j=1;j<=n;j++) 
     while(i>o) i/=2; 
      //answer is 1+log2(n) or O(log(n)) 


    for(j=1; <=n; ++j){ 
     int i-n; 
     while(i>0) i/=2; 
    } //answer O(nlog(n)) 
+1

Каждый из этих, но первый имеет ошибки кодирования. А четвертый - O (n). –

+1

, возможно, почему я не могу понять, потому что я просто скопировал это задание. И нам сказали, что последний был nlogn, не могли бы вы объяснить, почему это O (n) – Wongesse

+0

Как только современный компилятор с ними справится, все они O (0). Нотация Big-O обычно подсчитывает объем выполненной работы. – MSalters

ответ

0

Номер 4: подсчитывает for цикл от 1 до N, так что по крайней мере, О (п). Цикл while принимает O (log n) в первый раз, но так как i не получает сброс, цикл while имеет только одну итерацию каждый раз подряд через цикл for. Таким образом, в основном O (n + log n), что упрощается до O (n).

Номер 5: то же самое, что и выше, но теперь iделает получить сбрасываются каждый раз, так что у вас есть O (журнал N) сделали N раз: O (п § п).

Смежные вопросы