C语言中qsort函数用法详解:

1.该函数属于#include <stdlib.h>标准库中, 且是快速排序;

2.qsort函数声明:void qsort(void *base, size_t nitems, size_t size, int (*compar)(const void *, const void*));

3.*base:指向要排序数组的第一个元素指针,而数组名则是该数组的起始地址;size_t nitems:指数组中元素个数;size_t size:指数组中单个元素的大小;cmp:指用来比较两个元素的函数(一般根据需求自己重写);

4.实例:1.定义一结构体:

                struct Interval{

                    int x, y;

                  }I[110];

                2.重写qsort函数

                    int cmp(const void *a, const void *b){

                            if(((const struct Interval *)a)->x != ((const struct Interval *)b)->x)

                                    return ((const struct Interval *)b)->x > ((const struct Interval *)a)->x; //先按左端点从大到小排列

                             else return ((const struct Interval *)a)->y < ((const struct Interval *)b)->y; //然后按左端点相同的右端点从小到大排序

}

                        1.((const struct Interval *)b)是指针类型    2.return的值与需求相反(具体可看上文)

                   3.main函数里调用:

                    qsort(I, n, sizeof(struct Interval), cmp); (结构体的单个元素大小与其他标准类型不同)。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容