5 回答
TA贡献1865条经验 获得超7个赞
sort(),qsort()排序函数
一.sort函数
常用于C++中,头文件为algorithm.h。
用法:
sort(first,last)
在[first, last)中的元素进行排序按升序排列
注意:sort默认排序后是升序。如果要想按降序排列,需自己编写一个比较函数来实现。
函数名...................功能描述
sort........................对给定区间所有元素进行排序
stable_sort.........对给定区间所有元素进行稳定排序
partial_sort........对给定区间所有元素部分排序
partial_sort_copy..........对给定区间复制并排序
nth_element...................找出给定区间的某个位置对应的元素
is_sorted...........................判断一个区间是否已经排好序
partition...........................使得符合某个条件的元素放在前面
stable_partition............相对稳定的使得符合某个条件的元素放在前面
二、qsort()函数
功 能: 使用快速排序例程进行排序
头文件:stdlib.h
用 法: void qsort(void *base,int nelem,int width,int (*fcmp)(const void *,const void *));
参数: 1 待排序数组首地址
2 数组中待排序元素数量
3 各元素的占用空间大小
4 指向函数的指针,用于确定排序的顺序
TA贡献1934条经验 获得超2个赞
在stdlib.h头文件中。
有qsort() //快速排序
qsort函数,也就是快速排序算法,在C的<stdlib>库中,需加入头文件#include <cstdlib> 或#include <stdlib.h>。
调用qsort函数需要写cmp比较函数。
给出按升序排列的例子:
int cmp(const void* a, const void* b) //注意这里是int{return (int*)a - (int*)b;}
调用:
qsort(a, n, sizeof(int), cmp);//a为数组,n为个数
如果需要按照自己的意愿排列,那么同样重写cmp比较函数,就可以完成,和sort函数类似。时间复杂度为O(n log n),但是某些情况要比sort函数好。
TA贡献1836条经验 获得超13个赞
#include <algorithm>
#include <iostream>
using namespace std;
main()
{
int a[11]={2,4,8,5,7,1,10,6,9,3};//a的长度=待排数据个数+1
sort(a,a+10);//对[a,a+10)排序
for(int i=0;i<10;++i) cout<<a[i]<<endl;
}
- 5 回答
- 0 关注
- 2990 浏览
添加回答
举报