C# 选择排序算法实例解析
选择排序是一种简单直观的排序算法。本文通过一段标准的 C# 静态方法代码,演示如何对整型数组进行升序排列,核心逻辑在于每轮从未排序部分选出极小值并与首位交换。
选择排序算法原理
选择排序(Selection Sort)的基本思想是:每一趟从待排序的数据元素中选出最小(或最大)的一个元素,顺序放在已排好序的数列的最后,直到全部待排序的数据元素排完。
对于长度为 N 的数组,需要进行 N-1 趟比较。第 i 趟排序时,首先假设当前未排序部分的第一个元素为最小值,然后将其与后续所有元素进行比较,更新最小值的索引。比较结束后,将找到的实际最小值与当前未排序部分的起始位置元素进行交换。
C# 代码实现
以下是使用 C# 实现的 `SelectSort` 静态方法。该方法接收一个整型数组 list 作为参数,直接修改原数组内容使其变为升序排列。
public static void SelectSort (int[] list)
{
for (int i = 0; i < list.Length; i++)
{
int min = i;
// 内部循环负责在当前未排序区间 [i+1, Length) 中寻找最小值索引
for (int j = i + 1; j < list.Length; j++)
if(list [j] < list [min])
min = j;
// 如果找到的最小值不是当前起始位置,则执行交换
if(min != i)
{
int Temp = list [min];
list [min] = list [i];
list [i] = Temp;
}
}
}
代码逻辑解析
- 外层循环控制:变量
i表示当前需要确定位置的最小值所在的索引。循环范围是从0到list.Length - 1。 - 寻找最小值:初始化
int min = i,假设当前位置即为最小值。内层循环变量j从i + 1开始遍历至数组末尾。如果发现list[j]小于list[min],则更新min = j。 - 执行交换:内层循环结束后,检查
min是否等于i。若不相等,说明找到了更小的元素,通过临时变量Temp完成list[i]与list[min]的值互换。
总结
上述代码展示了 C# 中选择排序的核心结构。虽然该算法的时间复杂度为 O(n²),不适合大规模数据排序,但其逻辑清晰,非常适合用于学习排序算法的基础概念及数组操作。以上就是C#选择排序法实例分析的详细内容,更多关于C#排序算法的资料请关注本站其它相关文章!
免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。









