社区
彩虹世界的课程社区_NO_2
算法入门教程——排序
帖子详情
排序例题——求前m大数(2)
帅气的东哥
2023-01-12 14:19:00
课时名称
课时知识点
排序例题——求前m大数(2)
排序例题——求前m大数
...全文
98
回复
打赏
收藏
排序例题——求前m大数(2)
课时名称课时知识点排序例题——求前m大数(2)排序例题——求前m大数
复制链接
扫一扫
分享
举报
写回复
配置赞助广告
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
n个数
求前
m个数的大小
一、描述 n个数
求前
m个数的大小 二、分析 堆
排序
就是先求出最大的数,然后求出次大的数,然后求出第三大的数,依次类推,而这个题只要求求出前m个大的数,所以用堆
排序
应该是效率比较高的。 三、代码 void heapfy(int a[],int i,int heapsize) { int largest=i; int left=2*i+1; int right...
系列前m
大数
算法总结
有的时候想想懒得每次遇到类似问题就重新编代码,所以主要是为了保存代码,就重新记录一些简单题的解法。问题:给定一个无序系列包含有n个数,求其前m
大数
算法:1. 对该系列进行
排序
,然后取前m大的数。算法时间复杂度为O(nlogn)2. 如果m比较小,对系列流有序保存前m
大数
,时间复杂度为O(mn)3. 维持一个m个元素的最小堆,该堆保存的是前m
大数
,新添加的数只要跟该堆中最小数比较,若大则替换并调整堆
n个数中输出前m大的数
描述 n个数,要求输出其中的m个最
大数
想法1 开辟辅助数组,用插入
排序
,将前m最
大数
插入到辅助数组中,时间复杂度O(n*m) 想法2 类似快速
排序
的想法,将前m大的数都聚到最左边,再进行一次
排序
输出 取一个key,将大于key的数放到左边,若大于m则左边递归;若小于m,右边递归 实现代码1: #include<iostream> #include<cstdlib> #include<cmath> using namespace std; void Mer
北京大学郭炜-输出前m大的数
北京大学郭炜-输出前m大的数 给定一个数组包含n个元素,统计前m大的数并且把这m个数从大到小输出。 感想:可能是我语文不好,总理解不了“前m大的数”是什么意思,后来才搞明白,前m大的数就是这个数组中,前m个比较大的数据: 比如:1234567 前3大的数就是:7 6 5 前4大的数就是:7 6 5 4 #include <algorithm> #include "iostream" using namespace std; void swap(int &a,int &b){
TZOJ 4671:
求前
M大的数
4671:
求前
M大的数 时间限制(普通/Java):2000MS/20000MS 内存限制:65536KByte 描述 给定N个整数,求出前M大的数,并按照从小大到的顺序
排序
。 输入 第一行为两个正整数N和M(1<=N<=10000000, 1<=M<=10),第二行为N个非负整数。 输出 按照从小大到的顺序输出前M个整数,用空格隔开。 样例输入 5 3 3 1 ...
彩虹世界的课程社区_NO_2
74
社区成员
183
社区内容
发帖
与我相关
我的任务
彩虹世界的课程社区_NO_2
复制链接
扫一扫
分享
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章