我知道C#中有一个排序函数可以将数组排序到正确的顺序,但出于原因,我需要用我自己的代码来完成。
我已经提出了这个问题,并且其中一些数字会移动,但它从未完全排序。有谁知道为什么?
$http.post
我的输出最终是:
2 3 5 3 6 7
答案 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();