索引请参考:系列目录
题目:
- 输入n个整数,找出其中最小的k个数。
- 示例:
- 输入{4,5,1,6,2,7,3,8}
- 输出最小的4个数是1,2,3,4
分析:
- 该题目实质是对排序算法的一种考察。其中在节体过程中采用了STL sort()采用的是优化版本的快速排序,在最后阶段采用直接插入排序。因此时间复杂度为O(N·log(N))。
- 题目简单,具体参考代码
std::vector<int> getLeastNumber(std::vector<int> & array, const int k) {
if (k == 0 || k > array.size())
{
std::cerr << "输入参数出错" << std::endl;
std::exit(-1);
}
std::sort(array.begin(), array.end());
return std::vector<int>({ array.begin(),array.begin() + k });
}