Difference between revisions of "Heapsort"

From Wiki**3

 
(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);
 
     }
 
     }
 
   }
 
   }

Latest revision as of 15:50, 19 May 2005

Introdução

Implementação

 #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);
   }
 }