C++ qsort() 与 sort() 区别

本文介绍了C++中的qsort()和sort()的区别。qsort()是C语言库中的函数,使用三路划分的快速排序,需要自定义比较函数。sort()是C++标准库中的成员,它对大数组有优化,使用更简单,但默认为升序排序。若需降序排序,可提供自定义比较函数。
摘要由CSDN通过智能技术生成

sort() 来自C++ 的algorithm 库, qsort()存在C/C++ 两种版本,但是sort() 使用更便捷.
First qsort

基本快速排序的方法,每次把数组分成两分和中间的一个划分值,而对于有多个重复值的数组来说,基本排序的效率较低。集成在C语言库函数里面的的qsort函数,使用 三 路划分的方法解决这个问题。所谓三路划分,是指把数组划分成小于划分值,等于划分值和大于划分值的三个部分。

函数对buf 指向的数据按升序排序。

使用方法:

void qsort( void *base, size_t num, size_t width, int (__cdecl *compare )

int compare (const void *elem1, const void *elem2 ) );

qsort(quicksort)主要根据你给的比较条件给一个快速排序,主要是通过指针移动实现排序功能。排序之后的结果仍然放在原来数组中。

参数意义如下:

base:需要排序的目标数组开始地址

num:目标数组元素个数

width:目标数组中每一个元素长度

compare:函数指针,指向比较函数

一、对int类型数组排序

int num[100];

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

{

return *(int *)a - *(int *)b;

}

可见:参数列表是两个空指针,现在他要去指向你的数组元素。所以转型为你当前的类型,然后取值。升序排列。

因为是按照acs码的值进行的,所以在前面的字符的值一定小于后面的字

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值