qsort与sort

qsort

功 能: 使用 快速排序例程进行排序
头文件:stdlib.h
用 法: void qsort(void *base,int nelem,int width,int (*fcmp)(const void *,const void *));
参数: 1 待排序 数组首地址
2 数组中待排序元素数量
3 各元素的占用空间大小
4 指向函数的 指针,用于确定排序的顺序

关于最后一个参数,他是一个比较函数,com函数应写为:

int com ( constvoid *a, constvoid *b )
{
   return* ( int* ) a - * ( int* ) b;
}


不同的类型com可能会有不同的写法,可参考:http://blog.youkuaiyun.com/abcjennifer/article/details/6707237


sort

头文件       algorithm

原型

template< class RandomIt >
void sort( RandomIt first, RandomIt last );
(1)
 
 
template< class RandomIt, class Compare >
void sort( RandomIt first, RandomIt last, Compare comp );
(2)
 
     
sort(first,last)
在[first, last)中的元素进行排序按升序排列 (默认是升序排列)
first, last - 范围内的元素进行排序
comp -
比较函数,该函数返回true,如果第一个参数小于第二个。比较函数的签名应该相当于以下
:bool cmp(const Type1 &a, const Type2 &b);
签名不需要const &,但是函数不能修改对象传递给它。类型1和类型2他类型必须是这样一个类型的对象的引用,然后RandomIt可以隐式转换为两人。
两个参数时,sort(a,a+n)这样,三个参数时,可自定义cmp函数,sort(a,a+n,cmp)这样。
效率上sort优于qsort,详细可参考: http://blog.youkuaiyun.com/yzl_rex/article/details/7874513

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值