home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
The C Users' Group Library 1994 August
/
wc-cdrom-cusersgrouplibrary-1994-08.iso
/
listings
/
v_11_04
/
1104114a
< prev
next >
Wrap
Text File
|
1993-02-05
|
834b
|
51 lines
/* index1.c: Sort indirectly via an index */
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define NELEMS 4
static int comp(const void *, const void *);
static int some_ints[NELEMS] = {40,12,37,15};
main()
{
size_t i;
size_t idx[NELEMS] = {0,1,2,3};
qsort(idx,NELEMS,sizeof idx[0],comp);
printf("Sorted array:\n");
for (i = 0; i < NELEMS; ++i)
printf("%d\n",some_ints[idx[i]]);
printf("\nOriginal array:\n");
for (i = 0; i < NELEMS; ++i)
printf("%d\n",some_ints[i]);
return 0;
}
static int comp(const void *p1, const void *p2)
{
size_t i = * (size_t *) p1;
size_t j = * (size_t *) p2;
return some_ints[i] - some_ints[j];
}
/* Output:
Sorted array:
12
15
37
40
Original array:
40
12
37
15
*/