/*
*
* srt.h file
*
*/
#ifndef SRT_H
#define SRT_H
#include <string.h>
#include "srt.h"
#define MAX_BUF 256
#define swap(qx,qy,sz)
do {
char buf[MAX_BUF];
char *q1 = qx;
char *q2 = qy;
for (size_t m, ms = sz; ms > 0; ms -= m, q1 += m, q2 += m) {
m = ms < sizeof(buf) ? ms : sizeof(buf);
memcpy(buf, q1, m);
memcpy(q1, q2, m);
memcpy(q2, buf, m);
}
} while (0)
int size_t = 1000000;
int arr[1000000];
void srtheap(void *, size_t, size_t, int (*)(const void *, const void *)){
for(int i = nelem/2-1; i>=0; i--)
srtheap(a, nelem, sizeof(TYPE), compare);
for(int i = nelem - 1; i>=0; i--){
swap(&arr[0], &arr[i], &nelem);
srtheap(a, nelem, sizeof(TYPE), compare);
}
int largest = i;
int left = 2 * i + 1;
int right = 2 * i + 2;
if(left < nelem &&arr[left] > arr[largest])
largest = left;
if(right < nelem &&arr[right] > arr[largest])
largest = right;
if(largest!= i){
swap(&arr[i], &arr[largest], &nelem)
heap(arr[i], nelem, largest);
}
}
#endif /* SRT_H */