Ho una versione di bubble sort:Numero di swap in 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])
}
}
voglio calcolare il numero previsto di swap che utilizzano la versione sopra di bubble sort. Il metodo utilizzato da me è mostrato di seguito:
// 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].
}
}
Sto andando nel modo corretto o mi manca qualcosa?
Perché non si esegue questo su un set di dati randomizzati, e scoprire? –
"Il numero di" somethings è raramente 'float'. E non capisco affatto 'getprob()', ottiene i numeri, quindi può solo ... rispondere esattamente, qual è la probabilità? – unwind
Probabilmente è più facile da risolvere sulla carta che in un programma. –