//排序sort
bool cmp(int x,int y)//用来从大到小 ,不加则从小到大
{
if(x>y) return true;
else return false;
}
//或直接这样写
bool cmp(int x,int y)//用来从大到小 ,不加则从小到大
{
return x>y;
}
int main(){
int a[11]={1,3,6,2,0,9,45,21,67,7,28};
sort(a+0,a+11,cmp);//(数组名+数组需要排序的第一个坐标,数组名+数组需要排序的最后一个坐标+1)
for(int i=0;i<10;i++)
cout<<a[i]<<" ";
return 0;
}
//对结构体sort()
struct node
{
int num;
int data;
}c[100000+10];
bool cmp(node x,node y)
{
return x.data>y.data;//从大到小排>,若要从小到大排则<
}
int main()
{
int n,k;
cin>>n;
for(int i=0;i<n;i++) c[i].num=i;
for(int i=0;i<n;i++) cin>>c[i].data;
sort(c+0,c+n,cmp);
for(int i=0;i<n;i++) cout<<c[i].data<<' ';
puts("");
for(int i=0;i<n;i++) cout<<c[i].num<<' ';
puts("");
}
//结构体的排序顺序:
//首先按照a.x递增的方式排序。若a.x相同,则按照b.y的递增方式排序。
struct node
{
int x,y;
}c[1005];
bool cmp(node a,node b)
{
if(a.x<b.x)
{
return true;
}
else
if(a.x==b.x)
{
if(a.y<b.y)
{
return true ;
}
}
return false ;
}
int main()
{
sort( c,c+n,cmp);
return 0;
}
**
sort()是不稳定排序,stable_sort()是稳定排序。
**