调用C++库函数快速排序

大家知道C++库函数里面有快速排序算法吗?
如果有的话用什么头文件?
函数名是什么?
快速排序是不是相对最优的排序算法?

第1个回答  2008-04-02
使用C++标准库的快速排序函数
C++的标准库stdlib.h中提供了快速排序函数。
请在使用前加入对stdlib.h的引用:#include <cstdlib> 或 #include <stdlib.h>
qsort(void* base, size_t num, size_t width, int(*)compare(const void* elem1, const void* elem2))

参数表
*base: 待排序的元素(数组,下标0起)。
num: 元素的数量。
width: 每个元素的内存空间大小(以字节为单位)。可用sizeof()测得。
int(*)compare: 指向一个比较函数。*elem1 *elem2: 指向待比较的数据。
比较函数的返回值
返回值是int类型,确定elem1与elem2的相对位置。
elem1在elem2右侧返回正数,elem1在elem2左侧返回负数。
控制返回值可以确定升序/降序。

一个升序排序的例程:
int Compare(const void *elem1, const void *elem2)
{
return *((int *)(elem1)) - *((int *)(elem2));
}
int main()
{
int a[100];
qsort(a, 100, sizeof(int), Compare);
return 0;
}本回答被提问者采纳
第2个回答  2008-04-02
你指的是不是STL呀,
qsort
#include <algorithm>
第3个回答  2012-06-10
楼上说错了吧 那是C 中的 C++中是sort函数!
第4个回答  2008-04-02
排序方法小结:
方法比较
综合比较各种内部排序方法,其性能如下入所示:
方法 平均时间 最坏情况 辅助空间 稳定性 特点
插入排序 O(n2) O(n2) O(1) √ n<30常用
希尔排序 O(n1.2) O(n1.4) O(1) × 不常用
起泡排序 O(n2) O(n2) O(1) √ 初学
快速排序 O(nlnn) O(n2) O(n) × 常用,易恶化
选择排序 O(n2) O(n2) O(1) √ 初学
归并排序 O(nlog2n)O(nlog2n) O(n) √ 占空间多,用于外部排序
可以看出,因为各种排序方法个有优缺点,因此不同情况下可以选择不同方法,通常要考虑的因素右:待排
序记录的个数n,记录本身的大小,关键字的分布情况,对排序稳定性的要求和语言工具的条件等。
相似回答