(→Implementação) |
|||
Line 5: | Line 5: | ||
#define pq(A) a[l-1+A] | #define pq(A) a[l-1+A] | ||
− | void heapsort(Item a[], int l, int r) { | + | void '''heapsort'''(Item a[], int l, int r) { |
int k, N = r-l+1; | int k, N = r-l+1; | ||
for (k = N/2; k >= 1; k--) | for (k = N/2; k >= 1; k--) | ||
− | fixDown(&pq(0), k, N); | + | '''fixDown'''(&pq(0), k, N); |
while (N > 1) { | while (N > 1) { | ||
exch(pq(1), pq(N)); | exch(pq(1), pq(N)); | ||
− | fixDown(&pq(0), 1, --N); | + | '''fixDown'''(&pq(0), 1, --N); |
} | } | ||
} | } |
#define pq(A) a[l-1+A] void heapsort(Item a[], int l, int r) { int k, N = r-l+1; for (k = N/2; k >= 1; k--) fixDown(&pq(0), k, N); while (N > 1) { exch(pq(1), pq(N)); fixDown(&pq(0), 1, --N); } }