PTA 数据结构与算法题目集(中文)7-38 寻找大富翁(25 分)快排或堆排序
胡润研究院的调查显示,截至2017年底,中国个人资产超过1亿元的高净值人群达15万人。假设给出N个人的个人资产值,请快速找出资产排前M位的大富翁。
输入格式:
输入首先给出两个正整数N(≤106)和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 分)快排或堆排序相关推荐
- PTA数据结构与算法题目集6-4 6-3 6-8
PTA数据结构与算法题目集(中文) 6-4 链式表的按序号查找 ElementType FindKth( List L, int K ){int index = 0;while(L){++index; ...
- PTA数据结构与算法题目集 6-9 二叉树的遍历
PTA数据结构与算法题目集(中文) 6-9 二叉树的遍历 void InorderTraversal( BinTree BT ){if(BT==NULL)return;if(BT->Left){ ...
- 浙大PTA数据结构与算法题目集(中文)题解集复习用
文章目录 7-1 最大子列和问题 (20分)(dp或贪心) 7-2 一元多项式的乘法与加法运算 (20分) 7-3 树的同构 (25分) 7-4 是否同一棵二叉搜索树 (25分) 7-5 堆中的路径 ...
- PTA 数据结构与算法题目集(中文)
一:数据结构与算法题目(中文版) 7-2 一元多项式的乘法与加法运算 (20 分) 7-3 树的同构 (25 分) 7-4 是否同一棵二叉搜索树 (25 分) 7-6 列出连通集 (25 分)(详解) ...
- PTA 数据结构与算法题目集(中文) 7-10 公路村村通 (30分) 最小生成树(kruskal算法)
我的GIS/CS学习笔记:https://github.com/yunwei37/ZJU-CS-GIS-ClassNotes <一个浙江大学本科生的计算机.地理信息科学知识库 > 还有不少 ...
- PTA数据结构与算法题目集(中文)7-25
题意:找出M个俱乐部中最大朋友圈数量,朋友的朋友也朋友,所以可以采用并查集写此算法. 开始自己把题目理解错了,最后看了大神的写法终于明白了. #include <iostream> #in ...
- PTA数据结构与算法题目集(中文) 函数题 (1)
4-1 单链表逆转 code: List Reverse(List head) {if(NULL==head|| NULL==head->Next)return head;List p;List ...
- PTA数据结构与算法题目集(中文)7-36
Floyd算法求解: #include<stdio.h> #include<stdlib.h> #include<math.h> #define max 50005 ...
- PTA数据结构与算法题目集(中文)7-18
题意:有两个窗口A,B,题目给出A窗口处理完两个顾客,B窗口处理完一个顾客,并且当不同窗口同时处理完2个顾客时,A窗口顾客优先输出.我们可以给出两个队列q1,q2分别表示A,B窗口,编号为奇数的顾客存 ...
- PTA数据结构与算法题目集(中文)7-45
map的应用: #include <cstdio> #include <cstring> #include <algorithm> #include <ios ...
最新文章
- R可视化多元线性回归模型
- 容器私有云和持续发布都要解决哪些基础问题 第一集
- P4707-重返现世【dp,数学期望,扩展min-max容斥】
- python字符串大全_Python 字符串操作方法大全
- SQL Server之游标
- PyCharm将制表符转换为空格并显示的配置方法
- win7下搭建opengl es 2.0开发环境
- trunk口_Trunk的概念与设置
- Matlab里DTW算法和图像
- HEVC中四叉树划分详解
- 学习:SPWeb:Allusers、SiteUsers、Users和Sitegroups、Groups以及安全性编程
- 网桥是什么(配图)mark
- 毕业季!清北毕业生都去哪了?
- led手电筒烧灯珠_LED手电筒不亮了如何进行维修
- 魏则西事件与百度医疗竞价排名引发的伦理与道德问题
- Elasticsearch:cat API 介绍及其使用
- QT小项目---2048小游戏
- 记录代码生成2020-7-8这种日期格式的代码
- 车辆动力学模型推导注意细节(eg:科氏力的判断)
- 【Pytorch-从一团乱麻到入门】:5、模型效果评估指标:ROC-AUC、PR-AUC及可能遇到的问题(2)
热门文章
- Android开发之高德地图导航
- [PaddleDetection] S2ANet检测旋转框自制作数据准备
- tableau系列之在 Tableau 中构建地图
- 微信公众号前端40163解决办法
- 200624 VSCode配置reStructedText
- xul转换html,ExportHTMLFolderMod.uc.xul
- Dojo Shifter 2 for Mac(ae效果图层处理插件)
- 51单片机汇编学习笔记8——中断
- 软考-信息系统项目管理师-信息系统与信息化
- 计算机word求差函数,表格里怎么自动求差/怎样在word2010表格中求差