c++排序-庫函式sort()
阿新 • • 發佈:2019-01-08
對陣列進行排序是很經常遇到的問題,如果我們自己程式設計進行排序則不免會有效率低下,浪費時間等問題,而c++庫函式中則包含這個函式可以幫助我們快速的進行排序,因此我們沒有必要重複造輪子。
sort包含在algorithm中,所以如果要使用需#include<slgorithm>,它使用的排序方法是類似於快排的方法,時間複雜度未n*log2(n),執行效率很高。
sort函式有三個引數:
- 第一個:待排序資料的起始地址
- 第二個:結束地址(最後一位要排序的地址)
- 第三個:排序方式(從小到大,從大到小),可不寫,預設從小到大
sort(start, end, 排序方式)
例1:
#include <iostream>
#include <algorithm>
using namespace std;
int main(){
int a[5] = {3,2,1,5,4};
sort(a, a + 5);
for (int i = 0; i < 5; i++)
cout << a[i] << " ";
return 0;
}
例2:
#include <iostream>
#include <algorithm>
using namespace std;
bool compare(int a, int b){
return a > b;
}
int main(){
int a[5] = {3,2,1,5,4};
sort(a, a + 5, compare);
for (int i = 0; i < 5; i++)
cout << a[i] << " ";
return 0;
}
這裡compare是比較函式,告訴程式按從大到小排序,不需要對compare傳入引數。
如果待排序陣列為結構體,同樣可通過定義相對的比較函式對結構體陣列進行排序