Tôi có một phiên bản của bong bóng sắp xếp:Số giao dịch hoán đổi trong Bubble Sắp xếp
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])
}
}
tôi muốn để tính toán số lượng dự kiến của giao dịch hoán đổi sử dụng phiên bản trên của bong bóng sắp xếp. Phương pháp được sử dụng bởi tôi được hiển thị dưới đây:
// 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].
}
}
Am i đi theo cách đúng hay tôi thiếu cái gì?
Tại sao bạn không chạy trên một tập dữ liệu ngẫu nhiên, và tìm hiểu? –
"Số lượng" somethings hiếm khi là 'float'. Và tôi không hiểu 'getprob()' chút nào, nó nhận được những con số, vậy nên nó có thể ... trả lời chính xác, xác suất là gì? – unwind
Điều này có thể dễ dàng giải quyết trên giấy hơn là trong một chương trình. –