#include #define MAX_VALS 1000 int c,temp,child; int values[MAX_VALS]; int start,finish; double elapsed,startTime,endTime; FILE *fp; loadFile(fspec) char *fspec; { printf("READING INPUT FILE..."; fp=fopen(fspec,"rt"); if(!fp) { printf("\nERROR %d.\n",errno); return; } for(c=0;c=values[child]) { return; } temp=values[root]; values[root]=values[child]; values[child]=temp; root=child; } } double heapSort() { printf("SORTING ELEMENTS..."); startTime = Tgettime(); for(start = MAX_VALS/2-1;start>=0;start--) { siftDown(start, MAX_VALS); } for(finish=MAX_VALS-1;finish>0;finish--) { temp = values[finish]; values[finish] = values[0]; values[0]=temp; siftDown(0,finish); } endTime=Tgettime(); printf("DONE.\n"); return endTIme-startTime; } int main() { printf("***HEAPSOFT HiSoft C***\n"); loadFile("C:\\INPUT.TXT"); elapsed=heapSort(); saveFile("C:\\OUTPUT.TXT"); printf("***RUN COMPLETE***); printf("HEAPSORT TOOK %f SECONDS.", elapsed); event_keybd(); return 1; }