【题目描述】

给定一个数组,统计前k大的数并且把这k个数从大到小输出。

【输入】

第一行包含一个整数n,表示数组的大小。n < 100000。

第二行包含n个整数,表示数组的元素,整数之间以一个空格分开。每个整数的绝对值不超过100000000。

第三行包含一个整数k,k < n。

【输出】

从大到小输出前k大的数,每个数一行。

【输入样例】

10
4 5 6 9 8 7 1 2 3 0
5

【输出样例】

9
8
7
6
5

【源程序】

#include<iostream>
#include<cstdio>
#include<cstdlib>
#include<cstring>
#include<algorithm>
#include<string>
#define INF 999999999
#define N 1000001
#define MOD 1000000007
using namespace std;int a[N];int cmp(const void *a,const void *b){ return (*(int *)a) - (*(int *)b);
}void Find(int st,int ed,int k){if(st-ed+1==k) return;int i=st,j=ed,key=a[st];while(i<j){while(i<j&&a[j]>=key)j--;a[i]=a[j];while(i<j&&a[i]<=key)i++;a[j]=a[i];}a[i]=key;if(ed-i+1==k)return;else if(ed-i+1>k)Find(i+1,ed,k);elseFind(st,i-1,k-(ed-i+1));
}
int main(){int n,k;scanf("%d",&n);for(int i=0; i<n; i++)scanf("%d",&a[i]);scanf("%d",&k);Find(0,n-1,k);qsort(a+n-k,k,sizeof(a[0]),cmp);for(int i=n-1; i>=n-k; i--)printf("%d\n",a[i]);return 0;
}

输出前k大的数(信息学奥赛一本通-T1235)相关推荐

  1. 信息学奥赛一本通(1235:输出前k大的数)——堆排序

    1235:输出前k大的数 时间限制: 1000 ms         内存限制: 65536 KB 提交数: 12715     通过数: 4043 [题目描述] 给定一个数组,统计前k大的数并且把这 ...

  2. C语言(CED)输出前k大的数(分治法/局部快速排序):给定一个数组,统计前k大的数并且把这k个数从大到小输出。

    )输出前k大的数(分治法/局部快速排序):给定一个数组,统计前k大的数并且把这k个数从大到小输出. [输入] 第一行包含一个整数n,表示数组的大小. 第二行包含n个整数,表示数组的元素,整数之间以一个 ...

  3. (分治)7617:输出前k大的数

    描述  给定一个数组,统计前k大的数并且把这k个数从大到小输出. 输入  第一行包含一个整数n,表示数组的大小.n < 100000.  第二行包含n个整数,表示数组的元素,整数之间以一个空格分 ...

  4. C++ 输出前K大的数

    1:输出前k大的数 查看 提交 统计 提问 总时间限制: 10000ms 单个测试点时间限制: 1000ms 内存限制: 65536kB 描述 给定一个数组,统计前k大的数并且把这k个数从大到小输出. ...

  5. [Hash应用问题] 例3.2 给出n个整数,按从大到小的顺序输出前m大的数

    题目描述: 给出n个整数,请按从大到小的顺序输出前m大的数. 输入: 每组测试数据又两行,第一行有两个数n,m(0<n,m<1000000),第二行包含n个各不相同,且都处于区间[-500 ...

  6. yt练手1004输出前m大的数hash

    Home Page DIY Contests Problems Ranklist Status Statistics 前m大的数 Time Limit : 2000/1000ms (Java/Othe ...

  7. n个数中输出前m大的数

    描述 n个数,要求输出其中的m个最大数 想法1 开辟辅助数组,用插入排序,将前m最大数插入到辅助数组中,时间复杂度O(n*m) 想法2 类似快速排序的想法,将前m大的数都聚到最左边,再进行一次排序输出 ...

  8. 第k大的数python代码_【Python】【输出前m大的数】

    问题: 给定一个数组包含n个元素,统计前m个大的数,并把这m大的数从大到小排列给出 输入 第一行为一个整数,表述要输出的前m个数 第二行为n个整数,给出需要排序的数组 输出 从大到小的m大的数 例子 ...

  9. [leetcode]堆排序 求前k大的数

    前一篇博客中写到了排序算法,其中包含一个堆排序,因此本篇博客讲解堆这个数据结构及其应用. 关于最大堆最小堆以及初始建堆和整理堆在上篇博客中有提及,此处不再赘述.下面讲解一个堆的重要应用,求n个数中前k ...

最新文章

  1. openGL 坐标系的互相转换
  2. 兑吧:游戏化玩转用户运营的三驾马车
  3. 【BZOJ-1458】士兵占领 最大流
  4. GPS-nmealib学习
  5. Linux内核中的内存屏障(转)
  6. arduino编程时加{}报错_使用Arduino开发板时最常见的10个错误
  7. oracle 函数_oracle中row_number、rank、dense_rank() 的区别(over函数)
  8. java json jquery_JQuery提交JSON string数据
  9. 隔年增长的题_行测技巧:资料分析中隔年增长的解题关键
  10. 【笔记】Python算法教程(1)
  11. 什么是数据分析方法论
  12. 2021 小白版,360 行行行转 IT
  13. Pixel手机电信4G破解(含解锁BL和root)
  14. FastDFS 原理介绍
  15. 2022年上半年软件设计师下午真题试题(案例分析)及答案
  16. C/C++中各类数值型数据间的混合运算法则
  17. jmeter 取样器
  18. MySQL查询优化方法
  19. Java期末考试试题及参考答案(10)
  20. Java SE 第八十八,八十九,九十讲 递归深度剖析 IO流深入详解,递归作业详解

热门文章

  1. 零基础入门Python I/O:从print函数开始
  2. 手把手教你用Flutter做炫酷动画
  3. Python爬取B站5000条视频,揭秘为何千万人看「哪吒」流泪
  4. 一文读懂人工智能的前世今生(建议收藏)
  5. 关于Python爬虫,一条高效的学习路径
  6. 大数据如何促进经济增长?中国优势及应对 | 互联网经济学
  7. STM32之ADC多通道连续例程
  8. centos 释放swap_centos6.6关闭与打开swap(整理)
  9. 美国国家安全局是如何入侵你的电脑的?
  10. 学完计组后,我马上在「我的世界」造了台显示器,你敢信?