私はバブルソートのバージョンを持っています:
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].
}
}
私は正しい道を進んでいますか、それとも何かが欠けていますか?