杭电 1425 sort
来源:互联网 发布:房屋装修预算软件 编辑:程序博客网 时间:2024/05/21 17:10
sort
Time Limit : 6000/1000ms (Java/Other) Memory Limit : 65536/32768K (Java/Other)
Total Submission(s) : Accepted Submission(s) :
Problem Description
给你n个整数,请按从大到小的顺序输出其中前m大的数。
Input
每组测试数据有两行,第一行有两个数n,m(0<n,m<1000000),第二行包含n个各不相同,且都处于区间[-500000,500000]的整数。
Output
对每组测试数据按从大到小的顺序输出前m大的数。
Sample Input
5 3
3 -35 92 213 -644
Sample Output
213 92 3
Hint
Hint
请用VC/VC++提交
排序题,由于数据较多,故使用冒泡排序会超时,应用快速排序和HASH算法排序,下面是用HASH算法和快速排序的代码,快速排序涉及c++的函数自学吧!HASH算法很有意思,就讲讲,我们经常用到数组存数,但在这不一样,在这里我们用到了数组的空间位置储存信息,我们把输入的数存入对应的数组位置上,就好像将本来混乱输入的数据归位一样,并通过数组的值变化记录下来,具体看看代码就懂了!
代码如下:
#include<stdio.h>#include<string.h>int a[1000000];//由于数的大小在int main(){ int n,m,k; while(scanf("%d%d",&n,&m)!=EOF) { memset(a,0,sizeof(a));//将数组所用数赋为0 for(int i=0;i<n;i++) { scanf("%d",&k); a[k+500000]=1;//记录输入的数 } for(int j=1000000;m>0;j--) { if(a[j]==1) { if(m==1) printf("%d\n",j-500000); else printf("%d ",j-500000); m--; } } } return 0;}
‚
#include<cstdio>#include<algorithm>using namespace std;const int maxn=1000005;int ans[maxn];int main(){ int n,m; while(scanf("%d%d",&n,&m)!=EOF) { for(int i=0;i<n;i++) scanf("%d",ans+i); sort(ans,ans+n); printf("%d",ans[n-1]); for(int i=n-2;i>=n-m;i--) printf(" %d",ans[i]); printf("\n"); } return 0;}
0 0
- 杭电 1425 sort
- 杭电 1425 sort
- 杭电1425 sort
- 杭电1425sort
- 杭电1425 sort
- 杭电Hd 1425 sort
- 杭电1425(sort)
- 杭电1425(sort)
- 杭电 1425 sort 题解报告
- 数学—杭电1425 sort
- 杭电ACM。。。sort
- 杭电ACM。。。sort
- sort函数 使用于杭电1106
- 杭电ACM HDU 2689 Sort it
- 杭电2523(SORT AGAIN)
- 杭电1157(sort函数)
- 杭电ACM1425——sort~~水题
- 杭电Sort it 2689树状数组
- Python之禅
- 内部类的使用
- 代理模式
- [2010山东ACM省赛] Greatest Number(数的组合+二分搜索)
- 杭电acm 2018
- 杭电 1425 sort
- android的selector背景选择器
- poj1182 and 携程预赛2第一题 带权并查集
- tomcat安全配置
- uva 10586 - Polynomial Remains(数论)
- android之获取系统时间
- 设计模式之组合
- 腾讯QQ同时在线人数突破2亿
- Google_codejam2014_Problem B: Cookie Clicker Alpha