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