排序练习(归并排序)
来源:互联网 发布:lte网络优化工作怎么样 编辑:程序博客网 时间:2024/06/05 02:56
排序练习——找出前m大的数字
Time Limit: 1000ms Memory limit: 65536K 有疑问?点这里^_^
题目描述
给定n个数字,找出前m大的数字。
输入
多组输入,每组输入格式如下。
第一行包含两个整数n m。(n<=100000, m>0)
第二行包含n个正整数。
输出
输出前m大的数字,若m>n输出ERROR。每组输出占一行。
示例输入
2 14 34 21 2 898989 23
示例输出
4898989 23
提示
#include<bits/stdc++.h> //类似链表的有序归并using namespace std;int a[1000001];int Tarr[1000001];int Merge(int low,int mid,int high){int i=low,j=mid+1; //j以mid+1开始int k=0;while(i<=mid&&j<=high){if(a[i]>=a[j])Tarr[k++]=a[i++];elseTarr[k++]=a[j++];}while(i<=mid){Tarr[k++]=a[i++];}while(j<=high){Tarr[k++]=a[j++];}for(int i=0;i<k;i++){a[low+i]=Tarr[i];}}int Qsort(int low,int high){if(low<high){int mid=(low+high)/2;Qsort(low,mid);Qsort(mid+1,high);Merge(low,mid,high);}}int main(){int n,m;while(cin>>n>>m){for(int i=0;i<n;i++){cin>>a[i];}if(m>n){printf("ERROR\n");}else{Qsort(0,n-1);for(int i=0;i<m;i++){if(i)cout<<" ";cout<<a[i];}cout<<endl;}}}
0 0
- 排序练习(归并排序)
- 编程练习:归并排序
- 算法练习-归并排序
- Scala练习-归并排序
- 练习:归并排序算法实现
- 排序算法自我练习(四)——归并算法
- 归并排序-归并排序
- 归并排序(合并排序)
- 合并排序(归并排序)
- 排序(7)归并排序
- 归并排序(Java) @排序
- 归并排序(合并排序)
- 排序三(归并排序)
- 排序(3)---归并排序
- 排序(六):归并排序
- 做题练习--归并排序,穷举
- 算法练习-NOJ-1002-归并排序
- 排序之一(插入排序、归并排序)
- SAP上线前数据重置方式总结
- 嵌入式linux之LCD驱动记录
- 以 Python 为实例,介绍贝叶斯理论
- sizeof小览
- 深度学习-AlexNet入门
- 排序练习(归并排序)
- leetcode 062 —— Unique Paths
- no version information available
- 如何快速成为iOS游戏开发达人
- STM32 TFT学习笔记——读取ID
- c++ 整形 提升
- 耐人寻味的Temp文件(一)
- nyoj stl找球号
- poj1637 混合图欧拉回路的求解 网络流