【发布时间】:2009-11-28 09:00:02
【问题描述】:
我有一个小的整数数组。我想将数组从最大到最小重新排序。有没有办法做到这一点?
【问题讨论】:
我有一个小的整数数组。我想将数组从最大到最小重新排序。有没有办法做到这一点?
【问题讨论】:
你可以使用Array.Sort:
int[] array = new[] { 1, 3, 2 };
Array.Sort(array, (x, y) => y.CompareTo(x));
就复杂性而言:
平均而言,这种方法是 O(n log n) 操作,其中 n 是 大批;在最坏的情况下,它是 O(n ^ 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);
}
你可以试试这样的
int[] ints = new int[] {1, 2, 3, 4, 1, 2, 3};
var sorted = ints.OrderBy(i => i);
【讨论】: