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

使用Bubblesort对销售团队按销量排序的C#代码不生效问题咨询

问题修复说明

你的冒泡排序功能失效,核心问题出在BubbleSort函数的内部逻辑,一共2处需要修改,修改后即可正常按销量升序排序:

错误1:交换对象完全错位

你当前代码中,对比的是下标为j和j-1的两个销售的销量,判断出顺序不对后,却交换了下标为j和j+1的元素,完全没有修改顺序错误的两个元素,排序自然不会生效。

错误2:内层循环漏扫最后一个元素

当前内层循环的结束条件为j < list.Length - 1 - i,会导致每轮排序都漏掉最后一个需要对比的元素,无法完成全量排序。

修正后的完整BubbleSort代码

直接替换你原来的BubbleSort函数即可:

void BubbleSort(Säljare[] list) where Säljare : IComparable<Säljare>
{
    for (int i = 0; i < list.Length - 1; i++)
    {
        // 修正结束条件为<=,覆盖所有需要对比的位置
        for (int j = 1; j <= list.Length - 1 - i; j++)
        {
            if (list[j].CompareTo(list[j - 1]) < 0)
            {
                // 修正交换对象为j和j-1,和对比逻辑对应
                Säljare tmp = list[j - 1];
                list[j - 1] = list[j];
                list[j] = tmp; 
            }
        }
    }
}

其他说明

你定义的Säljare结构体的CompareTo方法逻辑是正确的,刚好符合按销量升序排序的要求,其余的销售信息录入、销量层级统计、文件写入的逻辑都不需要修改。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 22:45:03