今天我们来说一下简单选择排序,这也是相对简单的一种排序,它也是一种不稳定的排序;
时间复杂度:最好情况:O(n2) 最坏情况:O(n2) 平均情况 :O(n2)
空间复杂度:O(1)
简单选择排序的思想:对于一组记录,先找出最小的记录,将它与第一个记录进行交换,之后从第二个
记录开始,找出最小的记录,与它进行交换,直到只剩一个记录为止,总共进行n-1次。
简单选择排序代码:
#include <stdio.h>
void SelectSort1(int par_array[], int length)
{
int i, j, l, temp;
for (i = 0; i < length-1; i++)
{
temp = par_array[i]; //temp负责记录最小值
l = i; //l负责记录最小值的下标
for (j = i+1; j < length; j++)
{
if (par_array[j] < temp)
{
temp = par_array[j]; //满足从小到大的顺序进行交换
l = j;
}
}
if (l != i)
{
par_array[l] = par_array[i]; //进行交换
par_array[i] = temp;
}
}
}
int main1()
{
int i;
int a[] = {0, 3, 2, 6, 77, 56, 90, 32, 88};
int len = sizeof(a) / sizeof(a[0]);
SelectSort1(a, len);
for (i = 0; i < len; i++)
{
printf("%d ", a[i]);
}
printf("\n");
return 0;
}