【问题标题】:Sort Array from min to max从最小值到最大值排序数组
【发布时间】:2016-01-20 13:16:16
【问题描述】:

我有一个包含随机元素的数组。数组中有 10 个元素。

如何将第二个数组中的数字从最小值到最大值排序。

第二个数组中的示例数组 (43, 2, 23, 45...) 必须是 (2, 23, 43, 45...)

代码c#

int[] mass = new int[10];
int[] mass2 = new int[10]; 

void shemtxvevitimasivi()
{
    label1.Text = "";
    Random r = new Random();
    for (int i=0; i<mass.Length; i++)
    {
        mass[i] = r.Next(0, 100); 
    }
    for (int k=0; k<mass.Length; k++)
    {
        label1.Text+=mass[k].ToString()+" | ";
    }
}

void minim()
{
    for (int t = 0; t < mass.Length; t++)
    {
        label2.Text = mass.Min().ToString() + " | ";
    } 
}

private void button1_Click(object sender, EventArgs e)
{
    minim();
}

private void Form1_Load(object sender, EventArgs e)
{
    shemtxvevitimasivi();
}

【问题讨论】:

  • 将第一个数组的内容复制到一个新数组中,然后使用Array.Sort()对新数组进行排序
  • int[] mass2 = (int[])mass.Clone(); Array.Sort(mass2);
  • int[] a = { 43, 2, 23, 45 }; int[] b = a.OrderBy(x => x).ToArray();

标签: c# arrays sorting random


【解决方案1】:

你可以使用.Sort:

int[] mass2 = { 4, 7, 2, 0 };
Array.Sort(mass2);

foreach (int value in values)
{
    Console.Write(value);
    Console.Write(' '); 
}

// outputs 0 2 4 7

【讨论】:

    【解决方案2】:

    使用 Linq 的 OrderBy-statament:

    var myArr = mass.OrderBy(x => x).ToArray();
    

    【讨论】:

      【解决方案3】:

      您可以通过 Linq创建第二个数组作为第一个数组的(排序的)副本

        int[] mass = new int[10];
        ...
      
        int[] mass2 = mass
          .OrderBy(x => x)
          .ToArray();
      

      【讨论】:

        【解决方案4】:

        您可以自己实现一些排序算法,也可以直接使用:

        Array.Sort(yourArray);
        

        【讨论】:

        • 这会修改原始数组并且不会产生第二个。
        • 总是可以将原始数组的副本复制到一个新数组中然后对其进行排序,这个问题措辞模糊,所以我无法准确理解他们需要什么。
        【解决方案5】:
        int[] values = { 43, 2, 23, 45 };
        int[] ordered = values.OrderBy(x => x).ToArray();
        

        您可以使用OrderBy 以升序排列元素。如果你想反过来(降序),那么你可以使用OrderByDescending

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2012-04-16
          • 1970-01-01
          • 1970-01-01
          • 2017-06-10
          • 1970-01-01
          • 2017-08-01
          • 2016-07-29
          • 2016-09-10
          相关资源
          最近更新 更多