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)的寶寶,請看下一篇博客。祝你越學越好。

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