You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

自学CLRS:请求验证我的C# Selection Sort实现是否正确

确认你的C#实现是不是选择排序?看这几点就够了

嘿,自学CLRS的过程中能动手实现算法真的很棒!要确认你的代码是不是选择排序,咱们先把选择排序的核心逻辑理清楚,再对照你的代码逐一核对就行:

首先,选择排序的核心思路特别直白:

  • 把数组分成已排序的左半部分和未排序的右半部分,初始时已排序部分为空。
  • 每一轮都在未排序部分里找到最小(或者你实现的是找最大,逻辑同理)的元素,然后把它和未排序部分的第一个元素交换位置——这样已排序部分就多了一个元素,未排序部分少一个。
  • 整个过程最多只会有n-1次交换(n是数组长度),这是它和冒泡排序最明显的区别(冒泡每轮可能换好多次)。

现在你可以对着自己的C#代码检查这几个关键点:

  1. 外层循环是不是从数组的起始位置开始,一直遍历到倒数第二个元素?(因为最后一个元素不用再比较,自然就在正确位置了)
  2. 内层循环是不是从当前外层循环的下一个位置开始,遍历到数组末尾,专门用来找未排序部分里最小元素的索引?
  3. 每轮内层循环结束后,是不是只做了一次交换操作——把找到的最小元素和未排序部分的第一个元素互换?

如果这几点都符合,那你的实现肯定就是选择排序没错啦!要是你愿意把代码贴出来,我可以帮你再细致地过一遍细节~

内容的提问来源于stack exchange,提问作者Suyash Gupta

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.20 06:55:38