查找最小的k个元素

题目描述

输入n个正整数(可以有重复的情况出现),输出其中最小的k个(如有重复的情况出现,重复输出),其中1≤k≤n≤10000,每个正整数小于10000。例如输入1、4、8、2、5、7、6、3这8个数字,则最小的4个数字为1、2、3、4。

输入

第一行,n和k,用空格隔开。

n个整数,用空格隔开。

输出

最小的k个正整数,且从小到大排序,用空格隔开。

样例输入

8 4
1 2 3 4 5 6 7 8

样例输出

1 2 3 4

代码:

#include<cstdio>
#include<iostream>
#include<algorithm> 
using namespace std;
const int maxn=10000;
int b[maxn];//b[]存下标 

int main()
{
	int n,i,k,j;
	while(~scanf("%d %d",&n,&k))
	{
		for(i=0;i<n;i++)
		{
			scanf("%d",&b[i]);
		}
		sort(b,b+n);//从小到大排序 
    	for(i=0;i<k;i++)
		printf("%d ",b[i]);
		printf("\n"); 
	}
	return 0;
}

猜你喜欢

转载自blog.csdn.net/hanyue0102/article/details/81428355
今日推荐