Heapsort Code (1)
 heapsort(float array[], int N)
    {
    this.array = array;
    int Last = N-1;

    // phase 1: form heap
    for( int Top = Last/2; Top >= 0; Top-- )
      {
      adjust(Top, Last);
      }

    // phase 2: use heap to sort
    while( Last > 0 )
      {
      swap(0, Last);
      adjust(0, --Last);
      }
    }