Как найти big-0 вложенного цикла - PullRequest
0 голосов
/ 30 мая 2019

Я предполагаю, что «длина» - это мой N. Когда я вычисляю свой внутренний цикл, второй цикл while, я получаю 3i + 1.Но когда мы вычисляем big-o, он должен быть основан на N.Мой профессор дает 3i + 1 = 3 / 2n ^ 2-1 / 2n.Но он не показал мне процедуру.

int dup_chk(int a[], int length) {
    int i = length;
    while (i > 0) {
         i--;
         int j = i - 1;
         while (j >= 0) {
             if (a[i] == a[j]) {
                 return 1;
             }
             j--;
        }
    }
    return 0;
}

1 Ответ

0 голосов
/ 30 мая 2019

Второй цикл пока выполняется J раз, с

if condition O(1) + j-- O(1)

Принимая во внимание, что return будет работать только один раз, когда O(1)

это: 2J+1

...