Liczba swapów w Bubble Sort
Mam wersję sortowania bańki:
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])
}
}
Chcę obliczyć oczekiwaną liczbę swapów przy użyciu powyższej wersji sortowania bąbelkowego. Metoda używana przeze mnie jest pokazana poniżej:
// 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].
}
}
Czy idę właściwą drogą, czy coś mi brakuje?