временная сложность алгоритма инверсии таблиц

#algorithm #complexity-theory

Вопрос:

Есть ли способ определить временную сложность следующего алгоритма?

 int n=A.length, temp;
for (int i=0; i<n; i  ){
    for (int j=i 1; j<n; j  ){
    temp =A[i][j];
    A[i][j]=A[j][i];
    A[j][i]=temp;
}
 }
}
 

Комментарии:

1. Просто подсчитайте, как часто в общей сложности выполняется своп-код. Это n (n - 1) (n - 2) ... 1 . Так sum_(i = 1)^n i что , что есть (n^2 n)/2 , то O(n^2) есть .

Ответ №1:

Это O(n^2) .

Существует вложенный цикл ( i идет от 0 до n-1 ; и для каждого i j идет от i 1 до n ).

Это просто количество уникальных пар для всех i, j в диапазоне 0 to n-1 .

Обмен происходит O(1) .