Mam wersję bubble sort:Liczba transakcji swap w Bubble Sort
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 stosując powyższą wersję bubble rodzaju. Metodę używaną przeze mnie pokazano 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 podążam właściwą drogą, czy też czegoś brakuje?
Dlaczego nie można uruchomić to na randomizowanym zbiorze i dowiedzieć? –
"Liczba" rzadko się pojawia ". I w ogóle nie rozumiem 'getprob()', pobiera liczby, więc może po prostu ... dokładnie odpowiedzieć, co jest z prawdopodobieństwem? – unwind
Jest to prawdopodobnie łatwiejsze do rozwiązania na papierze niż w programie. –