#include <iostream>
#include <algorithm>
#include <functional>
bool greater_cmp(int a,int b);
bool less_cmp(int a,int b);
using namespace std;
int main()
{
int a[]={1,20,5,2,6,20};
int a_len = sizeof(a)/sizeof(int);
cout<<"原来的顺序:"<<endl;
for(int i=0;i<a_len;i++)
{
cout<<a[i]<<" ";
}
cout<<endl;
cout<<"逆序"<<endl;
reverse(a,a+a_len);
for(int i=0;i<a_len;i++)
{
cout<<a[i]<<" ";
}
cout<<endl;
cout<<"使用STL,降序排序"<<endl;
sort(a,a+a_len,greater<int>());
for(int i=0;i<a_len;i++)
{
cout<<a[i]<<" ";
}
cout<<endl;
cout<<"使用STL升序排序"<<endl;
sort(a,a+a_len,less<int>());
for(int i=0;i<a_len;i++)
{
cout<<a[i]<<" ";
}
cout<<endl;
cout<<"自定义函数降序排序"<<endl;
sort(a,a+a_len,greater_cmp);
for(int i=0;i<a_len;i++)
{
cout<<a[i]<<" ";
}
cout<<endl;
cout<<"使用自定义函数升序排序"<<endl;
sort(a,a+a_len,less_cmp);
for(int i=0;i<a_len;i++)
{
cout<<a[i]<<" ";
}
cout<<endl;
cout<<"稳定排序"<<endl;
stable_sort(a,a+a_len,less_cmp);
for(int i=0;i<a_len;i++)
{
cout<<a[i]<<" ";
}
cout<<endl;
}
bool greater_cmp(int a,int b){
return a>b;
}
bool less_cmp(int a,int b){
return a<b;
}