Dlaczego złożoność sortowania bąbelkowego to O (n ^ 2)?

Jak rozumiem, złożoność algorytmu to maksymalna liczba operacji wykonywanych podczas sortowania. Zatem złożoność sortowania Bubble powinna być sumą postępu arytmetycznego (od 1 do n-1), a nie n ^ 2. Następująca implementacja liczy liczbę porównań:

public int[] sort(int[] a) {
    int operationsCount = 0;
    for (int i = 0; i < a.length; i++) {
        for(int j = i + 1; j < a.length; j++) {
            operationsCount++;
            if (a[i] > a[j]) {
                int temp = a[i];
                a[i] = a[j];
                a[j] = temp;
            }
        }
    }
    System.out.println(operationsCount);
    return a;
}

Wyjście tablicy z 10 elementami wynosi 45, więc jest to suma progresji arytmetycznej od 1 do 9.

Dlaczego więc złożoność sortowania Bubble jest n ^ 2, a nie S (n-1)?

questionAnswers(2)

yourAnswerToTheQuestion