选择排序算法
每次都从待排序中选出最小的一个和待排序的第一个数据交换
选择排序代码实现
void SelectSort(int* arr, int len)//O(n^2),O(1),不稳定
{
int tmp;
int minIndex;//最小值的下标;
for (int i = 0; i < len - 1; i++)
{
minIndex = i;
for (int j = i + 1; j < len; j++)
{
if (arr[minIndex] > arr[j])
{
minIndex = j;
}
}
if (minIndex != i)
{
tmp = arr[minIndex];
arr[minIndex] = arr[i];
arr[i] = tmp;
}
}
}
选择排序的效率分析:
O(n^2),O(1),不稳定
快速排序如果完全有序就会退化为选择排序