胡润研究院的调查显示,截至2017年底,中国个人资产超过1亿元的高净值人群达15万人。假设给出N个人的个人资产值,请快速找出资产排前M位的大富翁。

输入格式:

输入首先给出两个正整数N(≤10​6​​)和M(≤10),其中N为总人数,M为需要找出的大富翁数;接下来一行给出N个人的个人资产值,以百万元为单位,为不超过长整型范围的整数。数字间以空格分隔。

输出格式:

在一行内按非递增顺序输出资产排前M位的大富翁的个人资产值。数字间以空格分隔,但结尾不得有多余空格。

输入样例:

8 3
8 12 7 3 20 9 5 18

输出样例:

20 18 12

此题没有重复元素,但是有m>n的情形。

1.快速排序

#include <cstdio>
#include <cstring>
#include <algorithm>
#include <iostream>
using namespace std;
const int maxn=1e6+5;
long long int a[maxn];
int n,m;
int main()
{scanf("%d%d",&n,&m);for (int i=0;i<n;i++)scanf("%lld",&a[i]);sort(a,a+n);m>n? m=n:m=m;for (int i=n-1;i>=n-m;i--){printf("%lld%c",a[i],i==n-m? '\n':' ');}return 0;
}

2堆排序:

#include <cstdio>
#include <cstring>
#include <algorithm>
#include <iostream>
using namespace std;
const int maxn=2e6+5;
int n,m;
int a[maxn];
void Heap (int x)
{int left=x<<1,right=x<<1|1;int large=x;if(left<=n&&a[left]>a[large])large=left;if(right<=n&&a[right]>a[large])large=right;if(large!=x){swap(a[x],a[large]);Heap(large);}
}
void Create ()
{for (int i=n>>1;i>=1;i--)Heap(i);
}
bool IsEmpty()
{return n==0? true:false;
}
int Delete ()
{if(IsEmpty())return -1;int temp=a[1];int ttemp=a[n--];int child,parent;for (parent=1;parent<=n;parent=child){child=parent<<1;if(child<n&a[child]<a[child+1])child++;if(a[child]>ttemp)a[parent]=a[child];elsebreak;}a[parent]=ttemp;return temp;
}
int main()
{scanf("%d%d",&n,&m);m>n? m=n:m=m;for (int i=1;i<=n;i++)scanf("%d",&a[i]);Create ();for (int i=1;i<=m;i++)printf("%d%c",Delete(),i==m? '\n':' ');return 0;
}

PTA 数据结构与算法题目集(中文)7-38 寻找大富翁(25 分)快排或堆排序相关推荐

  1. PTA数据结构与算法题目集6-4 6-3 6-8

    PTA数据结构与算法题目集(中文) 6-4 链式表的按序号查找 ElementType FindKth( List L, int K ){int index = 0;while(L){++index; ...

  2. PTA数据结构与算法题目集 6-9 二叉树的遍历

    PTA数据结构与算法题目集(中文) 6-9 二叉树的遍历 void InorderTraversal( BinTree BT ){if(BT==NULL)return;if(BT->Left){ ...

  3. 浙大PTA数据结构与算法题目集(中文)题解集复习用

    文章目录 7-1 最大子列和问题 (20分)(dp或贪心) 7-2 一元多项式的乘法与加法运算 (20分) 7-3 树的同构 (25分) 7-4 是否同一棵二叉搜索树 (25分) 7-5 堆中的路径 ...

  4. PTA 数据结构与算法题目集(中文)

    一:数据结构与算法题目(中文版) 7-2 一元多项式的乘法与加法运算 (20 分) 7-3 树的同构 (25 分) 7-4 是否同一棵二叉搜索树 (25 分) 7-6 列出连通集 (25 分)(详解) ...

  5. PTA 数据结构与算法题目集(中文) 7-10 公路村村通 (30分) 最小生成树(kruskal算法)

    我的GIS/CS学习笔记:https://github.com/yunwei37/ZJU-CS-GIS-ClassNotes <一个浙江大学本科生的计算机.地理信息科学知识库 > 还有不少 ...

  6. PTA数据结构与算法题目集(中文)7-25

    题意:找出M个俱乐部中最大朋友圈数量,朋友的朋友也朋友,所以可以采用并查集写此算法. 开始自己把题目理解错了,最后看了大神的写法终于明白了. #include <iostream> #in ...

  7. PTA数据结构与算法题目集(中文) 函数题 (1)

    4-1 单链表逆转 code: List Reverse(List head) {if(NULL==head|| NULL==head->Next)return head;List p;List ...

  8. PTA数据结构与算法题目集(中文)7-36

    Floyd算法求解: #include<stdio.h> #include<stdlib.h> #include<math.h> #define max 50005 ...

  9. PTA数据结构与算法题目集(中文)7-18

    题意:有两个窗口A,B,题目给出A窗口处理完两个顾客,B窗口处理完一个顾客,并且当不同窗口同时处理完2个顾客时,A窗口顾客优先输出.我们可以给出两个队列q1,q2分别表示A,B窗口,编号为奇数的顾客存 ...

  10. PTA数据结构与算法题目集(中文)7-45

    map的应用: #include <cstdio> #include <cstring> #include <algorithm> #include <ios ...

最新文章

  1. R可视化多元线性回归模型
  2. 容器私有云和持续发布都要解决哪些基础问题 第一集
  3. P4707-重返现世【dp,数学期望,扩展min-max容斥】
  4. python字符串大全_Python 字符串操作方法大全
  5. SQL Server之游标
  6. PyCharm将制表符转换为空格并显示的配置方法
  7. win7下搭建opengl es 2.0开发环境
  8. trunk口_Trunk的概念与设置
  9. Matlab里DTW算法和图像
  10. HEVC中四叉树划分详解
  11. 学习:SPWeb:Allusers、SiteUsers、Users和Sitegroups、Groups以及安全性编程
  12. 网桥是什么(配图)mark
  13. 毕业季!清北毕业生都去哪了?
  14. led手电筒烧灯珠_LED手电筒不亮了如何进行维修
  15. 魏则西事件与百度医疗竞价排名引发的伦理与道德问题
  16. Elasticsearch:cat API 介绍及其使用
  17. QT小项目---2048小游戏
  18. 记录代码生成2020-7-8这种日期格式的代码
  19. 车辆动力学模型推导注意细节(eg:科氏力的判断)
  20. 【Pytorch-从一团乱麻到入门】:5、模型效果评估指标:ROC-AUC、PR-AUC及可能遇到的问题(2)

热门文章

  1. Android开发之高德地图导航
  2. [PaddleDetection] S2ANet检测旋转框自制作数据准备
  3. tableau系列之在 Tableau 中构建地图
  4. 微信公众号前端40163解决办法
  5. 200624 VSCode配置reStructedText
  6. xul转换html,ExportHTMLFolderMod.uc.xul
  7. Dojo Shifter 2 for Mac(ae效果图层处理插件)
  8. 51单片机汇编学习笔记8——中断
  9. 软考-信息系统项目管理师-信息系统与信息化
  10. 计算机word求差函数,表格里怎么自动求差/怎样在word2010表格中求差