选择排序

tech2025-01-10  7

1. 选择排序:SelectSort

1.1 选择排序的原理:

首先在未排序序列中找到最小(大)元素,存放到排序序列的起始位置。

再从剩余未排序元素中继续寻找最小(大)元素,然后放到已排序序列的末尾。

重复第二步,直到所有元素均排序完毕。

1.2 代码

using SortInterface; using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace SortItem { class SelectSort : ISortItem { public override string SortTypeName { get { return "选择排序"; } } protected override void Sort(List<int> listNumber) { int i, j, min, len = listNumber.Count; int temp; for (i = 0; i < len - 1; i++) { min = i; for (j = i + 1; j < len; j++) { if (listNumber[min]>listNumber[j]) { min = j; } } temp = listNumber[min]; listNumber[min] = listNumber[i]; ChangeNumber(min, listNumber[i]); listNumber[i] = temp; ChangeNumber(i , temp); } } } }

1.3 界面效果

1.4 时间复杂度&空间复杂度

1.4.1时间复杂度

时间复杂度:O(n²)

1.4.2 空间复杂度:

空间复杂度:O(1),只需要一个附加程序单元用于交换

1.4.3 算法稳定性:

稳定性:选择排序是不稳定的排序算法,因为无法保证值相等的元素的相对位置不变,例如 [3, 4, 3, 1, 5]这个数组,第一次交换,第一个3和1交换位置,此时原来两个3的相对位置发生了变化。

最新回复(0)