qsort();
对数组内的元素进行默认升序的快速排序
void qsort( void *buf, size_t num, size_t size, int (*compare)(const void *, const void *) );
//eg
//以升序为例
int compare(const void* a, const void* b) {
int* s1 = (int*)a;
int* s2 = (int*)b;
return *s1 - *s2;
}
int n = 9;
int arr[n];
//假设数组全部输入了数据
qsort(arr, n, sizeof(int), compare);
buf 是将要排序的数组名,可以是字符数组,整型数组,结构体数组……只要能比较大小就行
num是数组元素的个数
size是单个元素所占的字节数,例如int 是 sizeof(int)
compare 是一个比较大小的函数,返回值为int,需要自己写出来
_int compare(const void a, const void_ b)
_a 和 b 都是void 的变量,属于弱类型,系统并不知道它们指向什么,所以使用的时候应该先强制类型转换为需要的指针类型_*
如果函数compare 的第一个参数小于第二个参数,返回负值;如果等于返回零值;如果大于返回正值。函数对buf 指向的数据按升序排序。
手机扫一扫
移动阅读更方便
你可能感兴趣的文章