题目:输入n个整数,输出其中最小的k个。
例如输入1,2,3,4,5,6,7和8这8个数字,
则最小的4个数字为1,2,3和4。
Solution:
#include<iostream> #include<algorithm> using namespace std; bool cmp(int a,int b) { return a<b; }; void findMinK(int *arr,int n,int k) { make_heap(arr,arr+k,cmp); for(int i = k;i<n;i++) { if(arr[0]>arr[i]) { int temp = arr[0]; arr[0] = arr[i]; arr[i] = temp; make_heap(arr,arr+k,cmp); } } };
查找最小的k个元素
最新推荐文章于 2022-03-15 00:18:08 发布