非常简单的选择排序代码,使用vector实现。
思路就是将数组分成无序和有序两个部分。然后每次在无序的部分中找到一个最小的值放在有序的部分中。时间复杂度为O(N^2),考场上建议直接使用sort()。
#include <iostream>
#include <vector>
using namespace std;
vector<int> res;
void selectSort(){
for(int i = 0;i < res.size();i ++){
int left = i;
for(int j = i;j < res.size();j ++){
if(res[j] < res[left]) left = j;
}
swap(res[left],res[i]);
}
}
int main()
{
int n,one;
cin >> n;
for(int i = 0;i < n;i ++){
cin >> one;
res.push_back(one);
}
selectSort();
for(int i = 0;i < res.size();i ++)
cout << res[i] << " ";
return 0;
}
//sample input:
// 5
// 2 3 1 5 8
//sample output:
// 1 2 3 5 8
18万+

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



