选择排序时间复杂度:O(n^2)
虽然复杂度相比其他logn级别的不占优势,但是思路清晰,操作简单。
算法思路:
在含有n个元素的数组中,以从小到大排序为例,通过n-1次遍历,每次遍历找出未确定位置的最小值,然后与第一个未确定位置元素交换,然后进行下一个位置的确定。
#include <iostream>
using namespace std;
template<typename T>
void selectionSort(T arr[] ,int n)
{
for(int i=0;i<n;i++)
{
int minIndex=i;//存储数组中最小值的变量
for (int j=i+1;j<n;j++)
if (arr[j]<arr[minIndex])
minIndex = j;
swap(arr[i],arr[minIndex]);
}
}