sort排序
简介:
在C++中,STL中就自带了排序函数sort,它的意义是对给定区间所有元素进行排序。
用法:
1. 首先,使用sort函数就必须添加头文件 #include <algorithm>
.
2. 其次,在运用时以sort(begin,end)
形式编写,如下代码
int a[10]
for(i=0;i<10;i++)
cin >> a[i]; //输入一个乱序数组
short(a,a+10); //从a[0]开始,一直到结束位即最后一位a[9]
for(i=0;i<10;i++)
cout << a[i] << endl; //输出排序后的数组
3. 一般来说sort函数是默认从小到大排序的。
下面我们来编写一个完整的代码
题目要求是将一串代码按照从小到大排列后,求排列后的数组与原数组对应为相减求得的差(即排序后的第n位减去排序前的第n位的差)。
#include <iostream>
#include <algorithm>
using namespace std;
int main()
{
int a[100],b[100],n,i;
cin >> n;
for(i=0;i<n;i++)
{
cin >> a[i]; //输入一个乱序的数组a
b[i]=a[i];
}
for(i=0;i<n;i++)
cout << a[i] << " "; //先看一下排序前顺序输出的数
cout << endl;
sort(a,a+n); //按格式运用sort函数
for(i=0;i<n;i++)
cout << a[i] << " "; //先看一下此时(排序后)顺序输出的数
cout << endl;
for(i=0;i<n;i++)
cout << a[i]-b[i] << " ";
return 0;
}
如果有不太懂C++的宝宝,可以百度看看c++的基本汇编语言。
讲了sort函数是从小到大排列的,那么如果你想让她从大到小排列,需要在主函数外在编写一个函数,通过函数调用实现目标。
我们在这里用到了bool(布尔类型),且此时在使用sort函数时调用了三个参数即sort (begain,end,name)
(name代表编写的函数名,这里我用的是bijiao)
如下是代码
#include <iostream>
#include <algorithm>
using namespace std;
bool compare(int a,int b)
{
return a>b;
}
int main()
{
int a[100],n,i;
cin >> n;
for(i=0;i<n;i++)
cin >> a[i];
for(i=0;i<n;i++)
cout << a[i] << " "; //先看一下排序前顺序输出的数
cout << endl;
sort(a,a+n,compare); //这里sort调用了三个参数
for(i=0;i<n;i++)
cout << a[i] << " "; //此时(排序后)顺序输出的数
return 0;
}
如果有不懂布尔类型 (bool)的宝宝,请看下一篇博客。祝你越学越好。