查找最小的k个元素
来源:互联网 发布:linux io 优先级 编辑:程序博客网 时间:2024/06/10 16:56
题目:输入n个整数,输出其中最小的k个。
例如输入1,2,3,4,5,6,7和8这8个数字,则最小的4个数字为1,2,3和4。
分析:这道题最简单的思路莫过于把输入的n个整数排序,这样排在最前面的k个数就是最小的k个数。STL中的set和multiset为我们做了很好的堆的现,我们可以拿过来用。 multiset是<set>库中一个非常有用的类型,它可以看成一个序列,插入一个数,删除一个数都能够在O(logn)的时间内完成,而且他能时刻保证序列中的数是有序的,而且序列中可以存在重复的数。程序代码如下:
分析:这道题最简单的思路莫过于把输入的n个整数排序,这样排在最前面的k个数就是最小的k个数。STL中的set和multiset为我们做了很好的堆的现,我们可以拿过来用。 multiset是<set>库中一个非常有用的类型,它可以看成一个序列,插入一个数,删除一个数都能够在O(logn)的时间内完成,而且他能时刻保证序列中的数是有序的,而且序列中可以存在重复的数。程序代码如下:
#include <set>#include <vector>#include <iostream>using namespace std;int main(void){//定义multiset数组,该数组是有序数组,从小到大排列multiset<int> data;//定义输入变量int input;//定义输出数组个数int k;//给定输出数组长度cout<<"please enter the number of k:"<<endl;cin>>k;cout<<"please enter the integer:"<<endl;//逐位将输入的数据存储到数组,并由小到大排序while(cin>>input){data.insert(input);}cout<<"the min k number is:"<<endl;//一次输出k个最小值for(int i=0;i<k;i++){ printf("%ld ",*data.begin()); data.erase(data.begin());}return 0;}
0 0
- 查找最小的k个元素
- 查找最小的k个元素
- 查找最小的 k个元素
- 查找最小的 K 个元素
- 查找最小的k个元素
- 5.查找最小的k个元素
- 查找最小的k个元素
- 查找最小的k个元素
- 查找最小的k个元素
- 5.查找最小的k个元素
- 查找最小的k个元素(数组)
- 查找最小的K个元素
- 查找最小的K个元素
- 查找最小的k个元素
- 查找最小的k个元素[算法]
- 查找最小的k 个元素
- 查找最小的k个元素
- 查找最小的k个元素
- (4.2.7)【android开源组件】Android PullToRefresh (ListView GridView 下拉刷新) 使用详解
- Ordinary Least Squares 最小二乘约束
- android listview 加载图片错乱(错位)
- 计算机网络基础
- XML的转义字符
- 查找最小的k个元素
- AES 加密和解密
- (4.2.8)【android开源工具】Umeng
- jdbc连接数据库
- 本次升级php和mysql的一些经验
- (4.2.9)【android开源工具】Android ORMLite 框架的入门用法
- hive 压缩参数
- POJ 1002: 487-3279
- OCX64位注册