C++ sort排序函式
阿新 • • 發佈:2018-12-09
注意事項
1、sort函式可以三個引數也可以兩個引數,必須的標頭檔案#include < algorithm>和using namespace std; 2、它使用的排序方法是類似於快排的方法,時間複雜度為n*log2(n)
3、Sort函式有三個引數:(第三個引數可不寫)
(1)第一個是要排序的陣列的起始地址。
(2)第二個是結束的地址(最後一位要排序的地址)
(3)第三個引數是排序的方法,可以是從大到小也可是從小到大,還可以不寫第三個引數,此時預設的排序方法是從小到大排序。
例項
#include <iostream> #include <vector> #include <algorithm> using namespace std; bool compare(string a, string b) { return a+b > b+a; //降序排序,相同時短者排前 } int main() { int n; cin >> n; vector<string> temp(n, ""); for (int i = 0; i < n; i++) { cin >> temp[i]; } sort(temp.begin(), temp.end(), compare); for (int i = 0; i < n; i++) { cout << temp[i]; } return 0; }
升降序
1)自己編寫compare函式:
bool compare(int a,int b) { return a<b; //升序排列,如果改為return a>b,則為降序
}
呼叫時使用
sort(begin, end, compare);
2)標頭檔案functional中自帶
equal_to<Type>、not_equal_to<Type>、greater<Type>、greater_equal<Type>、less<Type>、less_equal<Type>
- 升序:sort(begin,end,less<data-type>());
- 降序:sort(begin,end,greater<data-type>());
呼叫時使用 sort(begin, end, greater<Type>());