#include <stdlib.h>
extern "C" long random();
extern "C" void srandom(int);
#include <stdio.h>
#include <iostream.h>
extern int heapsort(int[], int);

main(int argc, char** argv)
// run as "a.out 100 25", where 100 is the size to be tested, and 25 is the range of entries
{int *array; int comp, i, size, mod;
 int seed = 101;
 if (argc < 3)
    {cerr << "Call as \"" << argv[0] << " <size> <mod> {<seed>}\"" << endl;
     exit(1);};
 sscanf(argv[1], "%d", &size); sscanf(argv[2], "%d", &mod);
 if(argc > 3) sscanf(argv[3], "%d", &seed);
 array = new int[size];
 srandom(seed);
 cout << "Input array" << endl;
 for(i = 0; i < size; i++) {array[i] = random() % mod; cout << array[i] << " ";};
 cout << endl;
 comp = heapsort(array, size);
 cout << "Heap sorted array after " << comp << " comparisons" << endl;
 for(i = 0; i < size; i++) cout << array[i] << " "; cout << endl;
}
