Sort 排序的几种用法
来源:互联网 发布:林书豪2016常规赛数据 编辑:程序博客网 时间:2024/04/29 17:54
PS: 之前给新生们写的。在这里也发一下吧。
====================================================================================
【整数数组】直接从小到大排序
#include<algorithm>#include<cstdio>using namespace std;//输入: // 先输入数组长度 n// 然后再输入n个整数//输出// 从小到大顺序输出数组 int main(){int i,n,a[200];scanf("%d",&n);for(i=0;i<n;i++)scanf("%d",&a[i]);sort(a,a+n);for(i=0;i<n;i++)printf("%d\n",a[i]);return 0;}
======================================================================================
【整数数组】从小到大排序
#include<algorithm>#include<cstdio>using namespace std;//输入: // 先输入数组长度 n// 然后再输入n个整数//输出// 从小到大顺序输出数组 int cmp(int x,int y){return x<y;}int main(){int i,n,a[200];scanf("%d",&n);for(i=0;i<n;i++)scanf("%d",&a[i]);sort(a,a+n,cmp);for(i=0;i<n;i++)printf("%d ",a[i]);puts("");return 0;}
==================================================================================
【整数数组】从大到小排序
#include<algorithm>#include<cstdio>using namespace std;//输入: // 先输入数组长度 n// 然后再输入n个整数//输出// 从大到小顺序输出数组 int cmp(int x,int y){return x>y;}int main(){int i,n,a[200];scanf("%d",&n);for(i=0;i<n;i++)scanf("%d",&a[i]);sort(a,a+n,cmp);for(i=0;i<n;i++)printf("%d ",a[i]);puts("");return 0;}
======================================================================================
【结构体数组】简单排序
#include<algorithm>#include<cstdio>using namespace std;//输入: // 先输入结构体数组长度 n// 然后再输入n个整数,表示结构体的其中的一个属性q //输出// 根据结构体数组的属性q的从大到小顺序,输出结构体数组 struct S{int q;int b;}a[200];int cmp(S x,S y){return x.q>y.q;}int main(){int i,n;scanf("%d",&n);for(i=0;i<n;i++){scanf("%d",&a[i].q);a[i].b=i;}sort(a,a+n,cmp);for(i=0;i<n;i++)printf("%d 原位置:%d\n",a[i].q,a[i].b);puts("");return 0;}
==============================================================================
【结构体数组】双属性排序
#include<algorithm>#include<cstdio>using namespace std;//输入: // 先输入结构体数组长度 n// 然后接下去n行,每行输入两个整数,表示结构体的其中的两个属性p和q //输出// 根据p属性的大小进行从大到小排序,在p相等的情况下,则根据q的大小进行从大到小排序 /*样例输入:53 54 76 34 93 2 */ struct S{int q;int p;}a[200];int cmp(S x,S y){if(x.p==y.p)return x.q>y.q;return x.p>y.p;}int main(){int i,n;scanf("%d",&n);for(i=0;i<n;i++)scanf("%d%d",&a[i].p,&a[i].q);sort(a,a+n,cmp);puts("排序后:"); for(i=0;i<n;i++)printf("%d %d\n",a[i].p,a[i].q);puts("");return 0;}
==============================================================================
【结构体数组】双属性排序2 // 所有的结构体排序都可以把以上的cmp函数,写成结构体运算符重载operator<
#include<algorithm>#include<cstdio>using namespace std;//输入: // 先输入结构体数组长度 n// 然后接下去n行,每行输入两个整数,表示结构体的其中的两个属性p和q //输出// 根据p属性的大小进行从大到小排序,在p相等的情况下,则根据q的大小进行从大到小排序 /*样例输入:53 54 76 34 93 2 */ struct S{int q;int p;bool friend operator <(S a,S b){if(a.p==b.p) return a.q>b.q;return a.p>b.p;}}a[200];int main(){int i,n;scanf("%d",&n);for(i=0;i<n;i++)scanf("%d%d",&a[i].p,&a[i].q);sort(a,a+n);puts("排序后:"); for(i=0;i<n;i++)printf("%d %d\n",a[i].p,a[i].q);puts("");return 0;}
=================================================================================================
【字符串数组】排序(char字符串)
#include<algorithm>#include<cstdio>#include<cstring>using namespace std;//输入: // 先输入字符串数组长度 n// 然后再输入n个字符串 //输出// 从小到大顺序输出字符串数组 char as[200][50];int cmp(int x,int y){return strcmp(as[x],as[y])==-1;} int main(){int i,n,a[200];scanf("%d",&n);for(i=0;i<n;i++){ // 注意字符串数组as[] 顺序并没有改变,改变的是存储 字符串数组as[] 映射 的数组a[] scanf("%s",as[i]);a[i]=i;}sort(a,a+n,cmp);for(i=0;i<n;i++)printf("%s\n",as[a[i]]);return 0;}
=================================================================================================
【字符串数组】排序(string 字符串)
#include<algorithm>#include<iostream>using namespace std;//输入: // 先输入字符串数组长度 n// 然后再输入n个字符串 //输出// 从小到大顺序输出字符串数组 string as[100];int main(){int i,n,a[200];scanf("%d",&n);for(i=0;i<n;i++)cin>>as[i];sort(as,as+n);cout<<"排序后:"<<endl;for(i=0;i<n;i++)cout<<as[i]<<endl;return 0;}
- Sort 排序的几种用法
- java的list的几种排序写法整理(sort的用法)
- 常见的几种Sort排序算法
- 关于sort函数的几种用法
- 关于sort函数的几种用法
- Collections.sort排序的用法
- 类的sort排序用法
- sort和qsort的几种排序方法
- Android Collections.sort的几种用法介绍
- 个人对sort几种用法的总结
- Java中Array.sort()的几种用法
- Java中Array.sort()的几种用法
- Java中Array.sort()的几种用法
- 关于java中Arrays.sort()的几种用法
- Java中Array.sort()的几种用法
- C#中List的排序用法(Sort)
- C++ 排序函数 sort(),qsort()的用法
- 快速排序qsort和sort的用法
- 第五届德鲁克夏令营(第一天)总结-----领导力,我要我们能
- C#窗体传值
- Post Office (P1160)
- struts2中改变struts.xml默认路径
- 性能测试监控——CPU
- Sort 排序的几种用法
- JQuery的$.ajax()调用asp.net的后台方法样例代码
- svn恢复到指定版本
- cpu运行状态监控脚本
- Struts动态结果集
- ios的本地化处理
- Kernel configuration is invalid. include/linux/autoconf.h or include/config/auto.conf are m
- JS 中 new 操作符
- 整数因子问题__nyist 478 月老的烦恼(1)