sort排列

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)的宝宝,请看下一篇博客。祝你越学越好。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章