繁体   English   中英

Array.Sort() 排序不正确

[英]Array.Sort() not sorting correctly

开始并无法弄清楚这一点。 此代码旨在创建数组并按顺序对其进行排序

        int n = Convert.ToInt32(Console.ReadLine());
        string readLine = Console.ReadLine();
        string[] values = readLine.Split(' ');
        int[] intArray = new int[n];
        for (int i = 0; i < n; i++)
        {
            intArray[i] = Convert.ToInt32(values[i]);
            Array.Sort(values);
            {
                Console.WriteLine(intArray[i]);
            }

如果我输入这些输入:

12

60 80 100 40 40 0 70 60 90 100 40 0

它输出这个

60
0
100
100
40
40
40
60
60
70
80
90

为什么会这样输出? 它已经完成了一半的工作,但为什么前四个整数是这样的。 似乎 0 也变成了 60。如果不是奇数 60,我会假设它仅根据数字的前 2 位数字进行排序。

想知道我在这里做错了什么

您似乎正在对错误的数组进行排序? 也许:

int[] intArray = new int[values.Length];
for (int i = 0; i < values.length; i++)
{
    intArray[i] = Convert.ToInt32(values[i]);
}
Array.Sort(intArray);
for (int i = 0; i < intArray.Length; i++)
{
    Console.WriteLine(intArray[i]);
}

或者更准确地说:

int[] intArray = Array.ConvertAll(values, s => Convert.ToInt32(s));
Array.Sort(intArray);
for (int i = 0; i < intArray.Length; i++)
{
    Console.WriteLine(intArray[i]);
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM