n个记录进行简单选择排序的基本方法是:通过n-i(1<=i<=n)在次关键字之间比较,从n-i+1个记录中选出关键字最小的记录,并和第i个记录进行交换,当i等于n时偶有记录有序排列。
简单选择排序是一种不稳定的排序方法,时间复杂度为O (n2)。在排序过程中仅需要一个元素作为辅助空间用于数组元素值的交换,空间复杂度为O(1)。
///
/// 简单选择排序
/// 思想:每次从待排序的数组中取出一个最小的和当前位置的数组交换
///
///
///
private int[] SelectSort(int[] arrData)
{
int temp = 0;//临时交换变量
int t = 0;
for (int i = 0; i < arrData.Length - 1; i++)
{
t = i;//用来记录当前交换的位置
//从未排序的数组中选取最小值
for (int j = i + 1; j < arrData.Length; j++)
{
if (arrData[j] < arrData[t])
t = j;
}
//如果未排序数组中不是第一个最小值 则交换
if (t != i)
{
temp = arrData[i];
arrData[i] = arrData[t];
arrData[t] = temp;
}
}
return arrData;
}