(C++)std::sort以及std::qsort用法(蓝桥杯序列排序)
函数名 | 功能描述 |
---|---|
sort | 对给定区间所有元素进行排序 |
stable_sort | 对给定区间所有元素进行稳定排序 |
partial_sort | 对给定区间所有元素部分排序 |
partial_sort_copy | 对给定区间复制并排序 |
nth_element | 找出给定区间的某个位置对应的元素 |
is_sorted | 判断一个区间是否已经排好序 |
partition | 使得符合某个条件的元素放在前面 |
stable_partition | 相对稳定的使得符合某个条件的元素放在前面 |
sort用法
我们最常用的sort函数,sort函数有升序和降序,默认为升序
创新互联坚持“要么做到,要么别承诺”的工作理念,服务领域包括:网站建设、做网站、企业官网、英文网站、手机端网站、网站推广等服务,满足客户于互联网时代的镇海网站设计、移动媒体设计的需求,帮助企业找到有效的互联网解决方案。努力成为您成熟可靠的网络建设合作伙伴!
//默认用法(升序)
#include
using namespace std;
#include
#include
int main()
{
int n;
cin >> n;
int a[200];
for (int i = 0; i < n; i++)
{
cin >> a[i];
}
sort(a,a+n);
for (int i = 0; i < n; i++)
cout << a[i]<<" ";
return 0;
}
//一般用法(降序)
#include
using namespace std;
#include
#include
bool compare(int a,int b)
{
return a>b;//如果改为 return a> n;
int a[200];
for (int i = 0; i < n; i++)
{
cin >> a[i];
}
sort(a,a+n,compare);
for (int i = 0; i < n; i++)
cout << a[i]<<" ";
return 0;
}
整合版:ASE是升序,DESC是降序
enum NumComp{ASE,DESC};//枚举出升降序变量
//创建一个类
class compare
{
private:
NumComp com;
public:
//构造函数
compare(NumComp c)
:com(c)
{}
bool operator()(int a, int b)// ()重载
{
switch (com)
{
case ASE:
return a < b;
case DESC:
return a > b;
}
}
};
int main()
{
int n;
cin >> n;
int a[200];
for (int i = 0; i < n; i++)
{
cin >> a[i];
}
sort(a, a + n,compare(DESC));//改为ASE是升序
for (int i = 0; i < n; i++)
cout << a[i] << " ";
return 0;
}
qsort用法
qsort升降序与compare函数有关,并且compare函数必须用户自己给出
#include
#include
using namespace std;
int compare(const void *a, const void *b)//类型自定,double*,char*等
{
//升序
return *(int*)a - *(int*)b; // return *(int*)b-*(int*)a;降序
}
int main()
{
int a[10] = { 5, 6, 4, 3, 7, 0, 8, 9, 2, 1 };
qsort(a, sizeof(a) / sizeof(a[0]), sizeof(int), compare);
for (int i = 0; i < 10; i++)
cout << a[i] << " " << endl;
return 0;
}
文章标题:(C++)std::sort以及std::qsort用法(蓝桥杯序列排序)
文章起源:http://scyanting.com/article/gigeeo.html