如何使用Array.Sort对数组编号进行排序

CJB*_*CJB 0 c# arrays sorting

我对它是如何工作有一个很好的想法,我已经看到了关于如何使用它的其他例子,但是无法弄清楚如何将它应用到我的代码中.

using System;

namespace ArrayRandomNumbers
{
    class RandomNumbers
    {
        public static void Main()
        {
            int[] num = new int[1000];
            Random rnd = new Random();

            for (int i = 0; i < 1000; i++)
            {        
                num[i] = rnd.Next(1000);

                Console.WriteLine(num[i]);
                Array.Sort(num); //Doesn't do anything here
                //Console.WriteLine(num[i] = rnd.Next(1000));
            }          
            Console.ReadLine();
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

eka*_*kad 5

Array.Sort(num);实际上对每次迭代进行排序,但效率很低,因为你只需要对数组进行一次排序而不是1000次.您需要放在循环Array.Sort(num);外部for并创建另一个for循环来打印已排序的数组.

int[] num = new int[1000];
Random rnd = new Random();

for (int i = 0; i < 1000; i++)
{        
    num[i] = rnd.Next(1000);

    Console.WriteLine(num[i]);
    //Console.WriteLine(num[i] = rnd.Next(1000));
}          

Console.WriteLine("Press Enter to sort the array");
Console.ReadLine();

// sort the array
Array.Sort(num);

// print the sorted array
for (int i = 0; i < 1000; i++)
{        
    Console.WriteLine(num[i]);
}          

Console.ReadLine();
Run Code Online (Sandbox Code Playgroud)