1. 程式人生 > >c++排序-庫函式sort()

c++排序-庫函式sort()

對陣列進行排序是很經常遇到的問題,如果我們自己程式設計進行排序則不免會有效率低下,浪費時間等問題,而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傳入引數。

如果待排序陣列為結構體,同樣可通過定義相對的比較函式對結構體陣列進行排序