题解 | #输入n个整数,输出其中最小的k个#
输入n个整数,输出其中最小的k个
https://www.nowcoder.com/practice/69ef2267aafd4d52b250a272fd27052c
#include <iostream> #include<vector> #include<algorithm> using namespace std; //借鉴了一些堆排序的思路,但不完全是堆排序,借用了系统提供的sort()函数; //目标是找到最小的k个数,那么只需在输入数据时与之前存储的最小的k个数中最大的一个数进行比较即可 如果小于,那么替换该数,对已知的k个数重新排序即可; int main() { int n, k; cin >> n >> k; int a[k]; //升序数组 for (int j = 0; j < k; j++) { //数组初始化 a[j] = 10001; } int temp; for (int i = 0; i < n; i++) { cin >> temp; if (temp < a[k - 1]) { a[k - 1] = temp; sort(a, a + k); } } for (int j = 0; j < k; j++) { cout << a[j] << " "; } return 0; }