void SelectSort()
{
int i, j, min;
int n = t.length;
for (i = 1; i < n; i++)
{
min = i;
// 找出最小元素下标.
for (j = i+1; j <= n; j++)
if (t.r[min] > t.r[j])
min = j;
// 与i比较,再交换.
if (min != i)
t.Swap(i, min);
}
}
简单选择排序比较次数固定为(n-1) + (n-2) + .... + 1, 总比较次数为n(n-1)/2.所以时间复杂度平均,最差,最好都为O(n^2).
最好情况下即正序序列,不需要移动元素,最坏情况即第一个元素最大,然后后面从小到大,则需要移动3(n-1).
需要外部空间1,作交换..
属于外部排序.
属于不稳定排序.