1. 程式人生 > >C++中sort函式從大到小排序的兩種方法

C++中sort函式從大到小排序的兩種方法

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