简谈sort排序

来源:互联网 发布:产品经理和数据分析 编辑:程序博客网 时间:2024/03/29 03:50
//在做题中,常常需要排序,学习下sort排序
//常用头文件 # include<iostream>
//           # include<algorithm>
//还有就是使用 using namespace std;


// 注意调用sort的三种方法 无第三参数,参数为自定义比较函数地址,直接调用less<>() or greater<>()
//less 从小到大 ,greater 从大到小
// 比较函数中 > 为降序 < 为升序


# include<stdio.h>
# include<stdlib.h>
# include<algorithm>
# include<iostream>
//#include<algorithm> sort头文件
using namespace std;
struct node{
int x;
int y;
}c[10];


bool cmp(int a,int b){
//return a<b;//升序
return a>b;//降序
}
bool cmp2(struct node a,struct node b){
return a.x>b.x;//降序
//return a.x<b.x;//升序
}
bool cmp3(char a,char b){
return a>b;
}


int main(){
printf("---------------对int型数组的sort\n");
int i, a[10]={1,3,4,9,5,7,5,6,8,0};
//int 数组排序
//sort 第一个参数为首元素地址,第二个参数为最后一个要排元素的地址的下一个地址
sort(a,a+10);//如果第三个参数没有,默认为升序
sort(a,a+10,greater<int>()); //从大到小
sort(a,a+10,less<int>());    //从小到大
//或者也可以自定义函数


sort(a,a+10,cmp);
for(i=0;i<10;i++)
    printf("%d ",a[i]);




printf("----------------对char型数的sort\n");
char b[50]="liuyixiang";
sort(b,b+10,less<char>());
sort(b,b+10,cmp3);
for(i=0;i<10;i++)
    printf("%c ",b[i]);








//结构体排序
printf("----------------对结构体的sort\n");






for(i=0;i<3;i++)
    scanf("%d %d",&c[i].x,&c[i].y);
sort(c,c+10,cmp2);
printf("After_sort\n");
for(i=0;i<10;i++)
    printf("%d %d\n",c[i].x,c[i].y);












}
0 0
原创粉丝点击