C++中sort函式從大到小排序的兩種方法
阿新 • • 發佈:2018-11-27
1.sort函式描述
而且,sort函式的演算法效率相當於快排,使用sort函式有時候可能比我們自己寫一個排序演算法,可能效率更高。
2.使用sort函式排序
#include <iostream>
#include <algorithm>
using namespace std;
int main() {
int arr[] = {2, 4, 5, 3, 1};
return 0;
}
這段程式碼我們可以在return 0前加入sort函式進行排序
sort(arr, arr + 5);
這樣的操作就是對0到4號元素進行排序
sort函式預設是進行升序排序。
有兩種方式可以進行降序,可自由選擇
a.使用greater<int>()
如果排序其他型別可更改引數
程式碼:
#include <iostream>
#include <algorithm>
using namespace std;
int main() {
int arr[] = { 2, 4, 5, 3, 1 };
sort(arr, arr + 5, greater<int>());
for(int i = 0;i < 5;i++){
cout<< arr[i] <<" ";
}
return 0;
}
b.自定義一個比較大小的函式,將大的排前面
自定義函式:
bool cmp(int x,int y)
{
return x > y;
}
這樣定義以後加入到sort函式的第三個引數即可
sort(arr,arr + 5,cmp);
原始碼:
#include <iostream>
#include <algorithm>
using namespace std;
bool cmp(int x,int y){
return x > y;
}
int main() {
int arr[10];
for (int i = 0; i < 10; i++) {
cin >> arr[i];
}
sort(arr,arr + 10);
for(int i = 0;i < 10;i++){
cout << arr[i] << " ";
}
cout << endl;
sort(arr,arr + 10,cmp);
for(int i = 0;i < 10;i++){
cout << arr[i] << " ";
}
cout << endl;
return 0;
}
sort函式在演算法競賽中可以節省很多時間,推薦 大家使用
可以關注一下Blog:
http://47.107.118.184