#include "Item.h"         /* IE */
#define heapsort sort
fixDown(Item a[], int k, int N)
  {
    Item v = a[k];
    while (k <= N/2)
      {
        int j = k+k;
        if (j < N && less(a[j], a[j+1])) j++;
        if (!less(v, a[j])) break;
        a[k] = a[j]; k = j;
      }
    a[k] = v;
  }
/* include heapsort */
void heapsort(Item a[], int l, int r)
  { int k, N = r-l+1; Item* pq = a+l-1;
    for (k = N/2; k >= 1; k--) 
      fixDown(pq, k, N);
    while (N > 1) 
      { exch(pq[1], pq[N]); 
        fixDown(pq, 1, --N); }
  }
/* end heapsort */


