排序思路
将数据分为有序和无序两部分,通过查找无序数据中的最小(大)值,交换无序序列开始的元素,直到排序完毕。
代码实现
void SelectionSort(int[] num)
{
int min;
int minIndex;
for (int i = 0; i < num.Length; i++)
{
min = num[i];
minIndex = i;
for (int j = i + 1; j < num.Length; j++)
{
if (num[j] < min)
{
min = num[j];
minIndex = j;
}
}
num[minIndex] = num[i];
num[i] = min;
}
}
复杂度
时间复杂度:O(n^2)
空间复杂度:O(1)
稳定性:不稳定-------对5,3,5,2排升序,5和2交换,则5就到了5的后面,故不稳定