查找最小的k个元素
来源:互联网 发布:pyro fireshooter淘宝 编辑:程序博客网 时间:2024/06/06 05:09
题目:输入n个整数,输出其中最小的k个。
例如输入1,2,3,4,5,6,7和8这8个数字,则最小的4个数字为1,2,3和4。
分析:我们可以开辟一个长度为k的数组。每次从输入的n个整数中读入一个数。如果数组中已经插入的元素少于k个,则将读入的整数直接放到数组中。否则长度为k的数组已经满了,不能再往数组里插入元素,只能替换了。
#include<iostream>#include<algorithm>#include<vector>using namespace std;int main(){const int MAXN=10;int a[MAXN]={45,3,6,86,23,0,66,44,90,-1};int k;cout<<"输入你要取的前?个最小数:";cin>>k;vector<int>p;for(int i=0;i<MAXN;i++){if(i<k){p.push_back(a[i]);push_heap(p.begin(),p.begin()+i+1);}else{if(a[i]<p[0]){pop_heap(p.begin(),p.end());p.pop_back();p.push_back(a[i]);push_heap(p.begin(),p.end());}}}sort_heap(p.begin(),p.end());cout<<"结果为:";for(int j=0;j<k;j++)cout<<p[j]<<" ";cout<<endl;return 0;}
0 0
- 查找最小的k个元素
- 查找最小的k个元素
- 查找最小的 k个元素
- 查找最小的 K 个元素
- 查找最小的k个元素
- 5.查找最小的k个元素
- 查找最小的k个元素
- 查找最小的k个元素
- 查找最小的k个元素
- 5.查找最小的k个元素
- 查找最小的k个元素(数组)
- 查找最小的K个元素
- 查找最小的K个元素
- 查找最小的k个元素
- 查找最小的k个元素[算法]
- 查找最小的k 个元素
- 查找最小的k个元素
- 查找最小的k个元素
- 传感器网络协议栈
- 记一次优化, 纠正SQ的L执行计划优化
- iOS 开发 多线程详解之NSThread异步线程下载网络图片
- opengrok搭建
- 封装
- 查找最小的k个元素
- IEEE802.15.4的超帧和时槽解读
- SSD基础知识三
- UVa839
- 远程桌面如何连接本地磁盘
- 50道Java线程面试题
- 0001算法笔记——NP完全理论
- 笔记
- [Solr6.2.1 self learning 2] SolrJ 6.2.1 integration