home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
The C Users' Group Library 1994 August
/
wc-cdrom-cusersgrouplibrary-1994-08.iso
/
listings
/
v_11_04
/
1104111b
< prev
next >
Wrap
Text File
|
1993-02-05
|
667b
|
26 lines
/* ssort.c: Generic selection sort */
#include <stddef.h>
void ssort(void *array, size_t nelems, size_t size,
int (*comp)(const void *, const void *))
{
size_t i, j, n;
for (i = 0; i < nelems-1; ++i)
for (j = i+1; j < nelems; ++j)
{
char *p1 = (char *) array + i*size;
char *p2 = (char *) array + j*size;
if (comp(p1,p2) > 0)
for (n = 0; n < size; ++n)
{
/* Swap elements byte-by-byte */
char t = p1[n];
p1[n] = p2[n];
p2[n] = t;
}
}
}