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);
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];
b[i]=a[i];
}
for(i=
0;i<n;i++)
cout << a[i] <<
" ";
cout << endl;
sort(a,a+n);
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);
for(i=
0;i<n;i++)
cout << a[i] <<
" ";
return 0;
}
如果有不懂布尔类型 (bool)的宝宝,请看下一篇博客。祝你越学越好。