基本思想:第 i 趟排序在待排序序列r[i]~rn中选取关键码最小的记录,并和第 i 个记录交换作为有序序列的第 i 个记录。
//简单选择排序算法
void SelectSort(int r[], int n) //用0号单元作为交换操作的暂存单元
{
for (int i = 0; i < n; i++) //对n个记录进行n-1趟简单选择排序
{
int index = i;
for (int j = i + 1; j <= n; j++)//在无序区中选取最小记录
if (r[j] < r[index])
index = j;
if (index != i)
{
int temp = r[i];
r[i] = r[index];
r[index] = temp;
}
}
}
时间复杂度为O(n^2)
简单选择排序是一种不稳定的排序方式
网友评论