今天看到了一个快速的排序方法,记录下,使用的是stl里的sort函数:
对一个数组int arr[m],要对从arr[0]到arr[m-1]的元素进行排序,只要写sort(arr,arr+m)就行了,
默认的排序方式是升序。
sort(参数1,参数2)
参数1:要排序的区间首地址
参数2:区间尾地址的下一地址
代码:
#include<bits/stdc++.h>
using namespace std;
int main(){
int arr[]={6,5,3,1,2,4,5};
sort(arr,arr+7);
for(int i=0;i<7;i++){
cout<<arr[i]<<endl;
}
return 0;
}
降序排列:
默认是升序(从小到大,小的排前面)。降序,重新规定下"小"的意思就行,写一个bool型函数cmp()进行定义的修改。
代码:
#include<bits/stdc++.h>
using namespace std;
//重新定义下"小于"的意义
bool cmp(int m,int n)
{
return m>n; //将m>n重新定义为m"小于"n
}
int main(){
int arr[]={6,5,3,1,2,4,5};
sort(arr,arr+7,cmp); //cmp加在尾巴里