【问题标题】:How to easily order an array from largest to smallest in Visual C#?如何在 Visual C# 中轻松地将数组从大到小排序?
【发布时间】:2009-11-28 09:00:02
【问题描述】:

我有一个小的整数数组。我想将数组从最大到最小重新排序。有没有办法做到这一点?

【问题讨论】:

    标签: c# arrays


    【解决方案1】:

    你可以使用Array.Sort:

    int[] array = new[] { 1, 3, 2 };
    Array.Sort(array, (x, y) => y.CompareTo(x));
    

    就复杂性而言:

    平均而言,这种方法是 O(n log n) 操作,其中 n 是 大批;在最坏的情况下,它是 O(n ^ 2) 操作

    【讨论】:

      【解决方案2】:

      您可以使用Array Sort & Reverse 来做到这一点:

      Array.Sort(array);
      Array.Reverse(array);
      

      例子:

      [Test]
      public void Test()
      {
          var array = new[] { 1, 3, 2 };
          Array.Sort(array);
          Array.Reverse(array);
      
          CollectionAssert.AreEquivalent(new[] { 3, 2, 1 }, array);
      }
      
      【解决方案3】:

      你可以试试这样的

      int[] ints = new int[] {1, 2, 3, 4, 1, 2, 3};
      var sorted = ints.OrderBy(i => i);
      

      发现于Sort array of items using OrderBy<>

      【讨论】:

      • 从大到小:ints.OrderByDescending(i => i);
      猜你喜欢
      • 2021-11-10
      • 2022-08-11
      • 2021-01-01
      • 2010-11-11
      • 1970-01-01
      • 2021-07-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多