简单选择排序算法:就是通过n-i次关键字间的比较,从n-i+1个记录中选出关键字最小的记录,并和i(1<=i<=n)个记录交换之。
void SelectSort(SqList *L)
{
int i, j, min;
for (i = 1; i < L->length; i++)
{
min = i;
for (j = i + 1; j <= L->length; j++)
if (L->r[min] > L->r[j])
min = j;
if (min != i)
swap(L, i, min);
}
}
从简单选择排序的过程来看,它最大的特点就是交换移动数据次数相当少,这样也就节约了相应的时间。分析它的时间复杂度发现,无论最后最坏的情况,其比较次数都是一样多。总的时间复杂度还是O(nxn),单身性能还是要略优于冒泡排序。