码迷,mamicode.com
首页 > 编程语言 > 详细

C语言的qsort函数

时间:2020-03-18 23:32:51      阅读:93      评论:0      收藏:0      [点我收藏+]

标签:mamicode   src   cdecl   class   mic   sort   优化   负数   img   

学了这么久都不知道C语言有这个函数(其实是因为基本没写过C,除了学程序设计的时候。。)

qsort 的函数原型是void __cdecl qsort ( void *base, size_t num, size_t width, int (__cdecl *comp)(const void *, const void* ) ) 
其中base是排序的一个集合数组,num是这个数组元素的个数,width是一个元素的大小,comp是一个比较函数。默认从小到大。

其中调用的算法是快速排序,并且是优化过的三路快排(划分为小于基准值、等于基准值、大于基准值的)。

其中第四个参数是一个函数指针,返回值是int,若需要递增排序:参数1>参数2应该返回正数,参数1<参数2返回负数,参数1==参数2返回0。

比如:

int cmp(const void* a,const void* b){
    return *(int*)(a)-*(int*)(b);
    }
int main(void)
{
    
    vector<int> p={3,432,52,12,5,3456,4523,43};
    qsort(&p[0],8,4,cmp);
    for(int x:p){
        cout<<x<<endl;
    }
    return 0;
}

技术图片

 

C语言的qsort函数

标签:mamicode   src   cdecl   class   mic   sort   优化   负数   img   

原文地址:https://www.cnblogs.com/FdWzy/p/12520991.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!