简单选择排序
- 基本思想:在待排序的数据中选出最大(小)的元素放在其最终位置。
- 基本操作:
1.首先通过n-1次关键字比较,从n个记录中找出关键字最小的记录,将它与第一个记录交换。
- 再通过n-2次比较,从剩余的n-1个记录中找出关键字的记录,将它与第二个记录交换。
- 重复上述操作,共进行n-1趟排序,排序后结束。
算法分析
- 简单选择排序是不稳定排序
void selectSort(Sqlist &L)
{
for(int i = 1; i < L.length; i++) //趟从1开始
{
int k = i;
for(int j = k+1; j <=L.length; j++) //打擂台比较,下标从1开始
{
if(L[k] > L[j])
{
k = j;
}
}
if(i != k)
{
ElemType temp;
temp = L[i];
L[i] = L[k];
L[k] = temp;
}
}
}