#include <stdio.h>
#include <stdlib.h>
#define COUNT 10
int num[COUNT];
int idx[COUNT];
int comparator(const void* l, const void* r)
{
const int* lv = l;
const int* rv = r;
return num[*rv] - num[*lv];
}
int main(void)
{
int i;
for(i = 0; i < COUNT; i++) {
num[i] = rand() % 100;
idx[i] = i;
}
printf("Before sorting\n");
printf("index : value\n");
for(i = 0; i < COUNT; i++) {
printf(" %3d : %4d\n", idx[i], num[idx[i]]);
}
qsort(idx, COUNT, sizeof(int), comparator);
printf("\nAfter sorting\n");
printf("value : index\n");
for(i = 0; i < COUNT; i++) {
printf(" %4d : %3d\n", num[idx[i]], idx[i]);
}
return 0;
}