C qsort <stdlib.h> (备忘)
qsort
void qsort(void *base, size_t n_elements, size_t el_size,
int (*compare)(const void *, const void *));
Example:
/*
* qsort.c
*
* 使用 qsort 对一个元素为某种结构的数组进行排序。
*/
#include <stdlib.h>
#include <string.h>
typedef struct
{
char key[10];
int other_data;
} Record;
int r_compare(const void *a, const void * b)
{
return strcmp( ((Record *)a)->key, ((Record *)b)->key );
}
int main(int argc, char *argv[])
{
Record array[50];
/* ...
* 用50个元素填充数组的代码
*/
qsort(array, 50, sizeof(Record), r_compare);
/*
* 现在,数组已经根据结构的关键字字段排序完毕
*/
return 0;
}