gpt4 book ai didi

c# - 按数组值排序数组索引

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:37:57 24 4
gpt4 key购买 nike

我正在尝试编写一个接受数组的函数 [4,7,2,1,9]然后像这样返回另一个数组

[4,1,0,2,3]// the sorted indices descending for the input array values

我试过这段代码,但它不能正常工作,我想帮助我编写一个函数,以最小的成本对这样的数组进行排序

 public void solution(int[] D)
{
int[] sorted = new int[D.Length];

for (int i = 0; i < D.Length; i++)
{
int ind = 0;

for (int j = 0; j < D.Length; j++)
{
if (D[j] > D[i] ) //&&
{
ind = j;
}
}
sorted[i] = ind;
}
}

最佳答案

Array.Sort 允许您传递第二个数组:

var data = new[] { 4, 7, 2, 1, 9 };
var indices = new[] { 0, 1, 2, 3, 4 };
Array.Sort( data, indices );

如果您需要按降序排列,请使用 Array.Reverse 或将其传递给交换顺序的 IComparer:

class ReverseSort : IComparer<int>
{
public int Compare( int x, int y )
{
return y.CompareTo( x );
}
}

Array.Sort( data, indices, new ReverseSort() );

不幸的是,Array.Sort 没有像其他重载那样采用两个数组 + 委托(delegate)的漂亮重载。

关于c# - 按数组值排序数组索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28096070/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com