C# 选择排序算法实例解析

晚来风
晚来风
发布时间:2026-10-14| 5人浏览过
原创

选择排序是一种简单直观的排序算法。本文通过一段标准的 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;
    }
  }
}

代码逻辑解析

  1. 外层循环控制:变量 i 表示当前需要确定位置的最小值所在的索引。循环范围是从 0 到 list.Length - 1。
  2. 寻找最小值:初始化 int min = i,假设当前位置即为最小值。内层循环变量 j 从 i + 1 开始遍历至数组末尾。如果发现 list[j] 小于 list[min],则更新 min = j。
  3. 执行交换:内层循环结束后,检查 min 是否等于 i。若不相等,说明找到了更小的元素,通过临时变量 Temp 完成 list[i] 与 list[min] 的值互换。

总结

上述代码展示了 C# 中选择排序的核心结构。虽然该算法的时间复杂度为 O(n²),不适合大规模数据排序,但其逻辑清晰,非常适合用于学习排序算法的基础概念及数组操作。以上就是C#选择排序法实例分析的详细内容,更多关于C#排序算法的资料请关注本站其它相关文章!

相关标签:

免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。

Python 相关产品和应用

全部下载
Selenium

Selenium

4.51.0 · Windows

用于浏览器自动化和 Web 测试的 Python 工具。

scikit-learn

scikit-learn

1.9.1 · Windows

常用 Python 机器学习算法与模型评估工具库。

Black

Black

26.10.1 · Windows

强调一致性的 Python 自动代码格式化工具。

Ruff

Ruff

0.17.1 · macOS

由 Rust 编写的高速 Python 代码检查和格式化工具。

pytest

pytest

9.1.1 · Windows

简洁而强大的 Python 自动化测试框架。

FastAPI

FastAPI

0.146.0 · Windows

高性能 Python API 框架,支持类型提示和自动接口文档。

Flask

Flask

3.1.3 · Windows

轻量灵活的 Python Web 应用框架。

Django

Django

6.1.2 · Windows

成熟的 Python Web 框架,适合构建内容站点和业务系统。

Spyder

Spyder

6.1.7 · Windows

面向科学计算与数据分析的 Python 集成开发环境。

SciPy

SciPy

1.18.1 · Windows

面向科学、工程和技术计算的 Python 算法库。