选择排序
选择排序是一种简洁直观的排序算法,时间复杂度为O(2),所以用到它的时候,数据规模越小越好。唯一的好处是不占用额外的内存空间
选择排序交换次数是O(n) 最好情况是0次,最坏情况是n-1次(逆序)
算法步骤
第一次从待排序的数据元素中选出最小的一个元素,存放到序列的起始位置,然后再从剩余的未排序的元素中寻找最小的元素,然后放到已排序的末尾。以此类推,直到所有元素都排完
代码
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
void selection_sort(vector<int> &arr)
{
for(int i = 0; i < arr.size()-1; i++)
{
int min=i;
for(int j=i+1;j<arr.size();j++)
{
if(arr[j]<arr[min])
min=j;
}
swap(arr[i],arr[min]);
}
}
int main()
{
vector<int> arr={1,5,7,2,6,3,9};
selection_sort(arr);
for(int i=0;i<arr.size();i++)
{
cout << arr[i];
}
return 0;
}
本文介绍了选择排序算法的工作原理,其时间复杂度为O(n^2),适合小规模数据。选择排序在每一轮中找到最小元素并交换,最好的情况是不需要交换,最坏的情况是需要交换n-1次。代码示例展示了C++实现的选择排序,用于排序整数数组。
1790

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



