sort排序
包含在c++头文件<algorithm>中
该函数包含三个参数
1.排序数组的起始地址
2.排序数组的结束地址
3.排序的顺序(升序(默认),降序(需要加一个比较函数,下列演示中加compare函数))
升序演示
#include<iostream>
#include<stdio.h>
#include<algorithm>
using namespace std;
int main()
{
int a[10];
for(int i=0;i<=8;i++)
cin>>a[i];
//升序
sort(a,a+9);
cout<<"升序结果为:" ;
for(int i=0;i<=8;i++)
cout<<a[i]<<" ";
return 0;
}
降序演示
#include<iostream>
#include<stdio.h>
#include<algorithm>
using namespace std;
/****用于降序排序的比较函数 *****/
bool cmy1(int a,int b)
{
return a>b;
}
int main()
{
int a[10];
for(int i=0;i<=8;i++)
cin>>a[i];
//降序
sort(a,a+9,compare);
cout<<endl<<"降序结果为:" ;
for(int i=0;i<=8;i++)
cout<<a[i]<<" ";
return 0;
}
结构体排序
#include<iostream>
#include<stdio.h>
#include<algorithm>
using namespace std;
/*****自定义的结构体*******/
struct node{
int a;
int b;
int c;
};
/***用于结构体的排序的比较函数******/
bool cmp2(node x,node y)
{
if(x.a!=y.a)return x.a<y.a;//先按a升序
if(x.b!=y.b)return x.b>y.b;//a相同则按b降序
return x.c>y.c; //b相同则按c降序
}
int main()
{
node nd[5];
nd[0].a=1;nd[0].b=2;nd[0].c=3;
nd[1].a=3;nd[1].b=2;nd[1].c=3;
nd[2].a=3;nd[2].b=4;nd[2].c=1;
nd[3].a=2;nd[3].b=4;nd[3].c=6;
for(int i=0;i<=8;i++)
//结构体排序,按a升序,按b降序,按c降序
sort(nd,nd+4,cmp2);
for(int i=0;i<=3;i++)
cout<<nd[i].a<<" "<<nd[i].b<<" "<<nd[i].c<<endl;
return 0;
}