Количество перестановок в пузырьковой сортировке

У меня есть версия пузырьковой сортировки:

int i, j;  

for i from n downto 1 
{
    for j from 1 to i-1 
    { 
        if (A[j] > A[j+1])
            swap(A[j], A[j+1]) 
    } 
}

Я хочу рассчитать ожидаемое количество свопов, используя приведенную выше версию пузырьковой сортировки. Используемый мной метод показан ниже:

// 0 based index

float ans = 0.0;

for ( int i = 0; i < n-1; i++ )
{
    for ( int j = i+1; j < n; j++ ) {

        ans += getprob( a[i], a[j]); // computes probability that a[i]>a[j].
    }
}

Я иду правильным путем или я что-то упускаю?

5
задан Greg Hewgill 16 September 2012 в 00:44
поделиться