剑指offer-刷题笔记-中难题-JZ40 最小的K个数
交换排序
class Solution {
public:
//交换
void swap(int &a,int &b)
{
int temp;
temp = a;
a = b;
b = temp;
}
//交换排序-从小到大排序
void swapSort(vector<int> &input)
{
for(int i = 0;i < input.size(); i++)
{
for(int j = i+1;j < input.size(); j++)
{
if(input[j] < input[i])
{
swap(input[i],input[j]);
}
}
}
}
vector<int> GetLeastNumbers_Solution(vector<int> input, int k) {
swapSort(input);
vector<int> result;
if(k <= 0 || input.size() <= 0 || k > input.size())
return result;
for(int i = 0;i < k;i++)
{
result.push_back(input[i]);
}
return result;
}
};
本文解析了如何使用交换排序算法解决《剑指 Offer》中的中难题——找到输入整数数组中最小的K个数。通过实例代码展示了`swap`和`swapSort`函数的实现,以及`GetLeastNumbers_Solution`函数的完整过程。适合深入理解交换排序在查找小元素场景的应用。
957

被折叠的 条评论
为什么被折叠?



