Почему пузырьковая сортировка O (n^2 )?

int currentMinIndex = 0;

for (int front = 0; front < intArray.length; front++)
{
    currentMinIndex = front;

    for (int i = front; i < intArray.length; i++)
    {
        if (intArray[i] < intArray[currentMinIndex])
        {
            currentMinIndex = i;
        }
    }

    int tmp = intArray[front];
    intArray[front] = intArray[currentMinIndex];
    intArray[currentMinIndex] = tmp;
}

Внутренний цикл итерирует :n + (n -1 )+ (n -2 )+ (n -3 )+... + 1 раз.

Внешний цикл повторяется :n раз.

Таким образом, вы получаете n*(сумма чисел от 1 до n)

Не так ли*(n *(n+1 )/ 2 )= n*((n^2 )+ n/2)

Что будет (n^3 )+ (n^2 )/2 = O (n^3 )?

Я уверен, что делаю это неправильно. Почему не O (n^3 )?

16
задан templatetypedef 13 July 2012 в 20:29
поделиться