算法思想:
从所有序列中先找到最小的,然后放到第一个位置。之后再看剩余元素中最小的,放到第二个位置……以此类推,就可以完成整个的排序工作了。可以很清楚的发现,选择排序是固定位置,找元素,然后将元素调整到指定位置。
代码:
class SlectionSort{
public:
void selectionSort(vector<int> &nums){
int length=nums.size();
int index;
for(int i=0;i<length-1;i++){
index=i;
for(int j=i;j<length;j++){
if(nums[j]<nums[index]){
index=j;
}
}
swap(nums[i],nums[index]);
}
}
};
算法复杂度:O(n^2)