区分C++中的sort()函数的使用
方法一
#include<iostream>
#include<algorithm>//因为用了sort()函数
#include<functional>//因为用了greater<int>()
using namespace std;
void main()
{
int a[]={3,1,4,2,5};
int i;
int len=sizeof(a)/sizeof(int);//这里切记要除以sizeof(int)!
sort(a ,a + len, greater<int>());//内置类型的由大到小排序
for(i=0;i<len;i++)
cout<<a[i]<<" ";
cout<<endl;
sort(a, a + len, less<int>()); //内置类型的由小到大排序
for(i=0;i<len;i++)
cout<<a[i]<<" ";
}
sort(a, a + len) //由小到大排序
sort(a ,a + len, greater());//内置类型的由大到小排序
sort(a, a + len, less()); //内置类型的由小到大排序
方法二
static bool cmp(const int &a,const int &b)
{
return a<b;
}
sort(s.begin(),s.end(),cmp); //从小到大排列
static bool cmp(const int &a,const int &b)
{
return a>b;
}
sort(s.begin(),s.end(),cmp); //从大到小排列
sort(s.begin(),s.end(),cmp);
在python中实现排序
citations.sort() //citations从小到大排序
citations.sort(reverse = True) #逆序,从大到小排序
在java中实现排序
Arrays.sort(citations); //citations从小到大排序
public static void main(String[] args) {
//利用外部比较器逆序排序
MyCompare mc = new MyCompare();
Arrays.sort(citations,mc);
}
//外部比较器
class MyCompare implements Comparator<Integer>{
@Override
public int compare(Integer o1, Integer o2) {
// TODO Auto-generated method stub
return o1 > o2 ? -1 :(o1==o2 ? 0 :1);
}