数组排序
#include <iostream>
#include<algorithm> // 排序需要引入的头文件
using namespace std;
int main()
{
int a[10] = { 9,6,3,8,5,2,7,4,1,0 };
// 计算数组长度
int len = (sizeof(a) / sizeof(a[0]));
// 打印长度
for (int i = 0; i < len; i++)
cout << a[i] << " ";
cout << endl; // 换行
//简单使用方法
sort(a, a + len, greater<int>()); //降序排列
cout << endl; // 换行
// 排序后输出
for (int i = 0; i < len; i++)
cout << a[i] << " ";
sort(a, a + len, less<int>()); //升序排列
cout << endl; // 换行
// 排序后输出
for (int i = 0; i < len; i++)
cout << a[i] << " ";
return 0;
}
使用 vector 排序
#include <iostream>
#include<algorithm>
#include <vector>
using namespace std;
按条件排序(不常用)
//bool cmp(int x, int y)
//{
// // x < y 正序
// // x > y 逆序
// return x < y;
//
//}
int main()
{
vector <int> a = { 9,6,3,8,5,2,7,4,1,0 };
// 计算数组长度
int len = a.size();
// 打印长度
for (int i = 0; i < len; i++)
cout << a[i] << " ";
//c.begin() 返回一个迭代器,它指向容器c的第一个元素
//c.end() 返回一个迭代器,它指向容器c的最后一个元素的下一个位置
//c.rbegin() 返回一个逆序迭代器,它指向容器c的最后一个元素
//c.rend() 返回一个逆序迭代器,它指向容器c的第一个元素前面的位置
cout << endl; // 换行 为了显示
// 排序(一般常用)
//正向排序
sort(a.begin(), a.end());
// 排序后输出
for (int i = 0; i < len; i++)
cout << a[i] << " ";
cout << endl; // 换行 为了显示
//反向排序
sort(a.rbegin(), a.rend());
// 排序后输出
for (int i = 0; i < len; i++)
cout << a[i] << " ";
cout << endl; // 换行 为了显示
条件排序(不常用)
//sort(a.begin(), a.end(), cmp);
排序后输出
//for (int i = 0; i < len; i++)
// cout << a[i] << " ";
//简单使用方法(最常用)
sort(a.begin(), a.end(), greater<int>()); //降序排列
cout << endl; // 换行
// 排序后输出
for (int i = 0; i < len; i++)
cout << a[i] << " ";
sort(a.begin(), a.end(), less<int>()); //升序排列
cout << endl; // 换行
// 排序后输出
for (int i = 0; i < len; i++)
cout << a[i] << " ";
return 0;
}