为什么这个程序不对数组进行排序?

时间:2015-09-29 16:18:44

标签: c# arrays sorting

我知道C#中有一个排序函数可以将数组排序到正确的顺序,但出于原因,我需要用我自己的代码来完成。

我已经提出了这个问题,并且其中一些数字会移动,但它从未完全排序。有谁知道为什么?

$http.post

我的输出最终是:

  

2 3 5 3 6 7

3 个答案:

答案 0 :(得分:2)

您在for循环中设置了sorted = true

一旦倒数第二个条目小于最终条目,它就会停止。验证外部循环时忽略所有其他检查

答案 1 :(得分:2)

你设置的每个项目的sorted = true, 你需要在for循环之外,while和for之间进行sorted = true。

while (sorted == false) {
            sorted = true;// here seems like the right place!
            for (int i = 0; i < (arraySort.Length - 1); i++)
            {     
                if (arraySort[i] > arraySort[i + 1])
                {
                    save = arraySort[i];
                    arraySort[i] = arraySort[i + 1];
                    arraySort[i + 1] = save;
                    sorted = false;
                }
            }
        }

答案 2 :(得分:-1)

为什么不这样做:

arraySort = arraySort.OrderBy(x => x).ToArray();
相关问题