gpt4 book ai didi

c# - 如何在 C# 中对二维数组进行排序

转载 作者:行者123 更新时间:2023-11-30 13:12:18 26 4
gpt4 key购买 nike

我已经阅读了很多关于对二维数组进行排序的文章,但我仍然无法掌握它,所以我想知道是否有人可以给我一些建议...

我有一个列出字母和数量的数组(我正在对一段文本进行频率分析)。我已将此数据读入一个矩形数组,需要先按最高频率对其进行排序。到目前为止,这是我的代码:

    //create 2D array to contain ascii code and quantities
int[,] letterFrequency = new int[26, 2];

//fill in 2D array with ascaii code and quantities
while (asciiNo <= 90)
{

while ((encryptedText.Length - 1) > counter)
{
if (asciiNo == (int)encryptedText[index])
{
letterCount++;
}
counter++;
index++;
}

letterFrequency[(storeCount), (0)] = (char)(storeCount+66);
letterFrequency[(storeCount), (1)] = letterCount;
storeCount++;
counter=0;
index=0;
letterCount = 0;
asciiNo++;
}

最佳答案

您正在使用二维数组来表示 2 个独立的向量 - 符号和计数。相反,使用 2 个单独的数组。 Array.Sort 有一个重载,需要 2 个数组,并在一个 数组上排序,但将更改应用于两个,实现您想要的。

这也允许您对字符使用 char[] 而不是 int[]:

char[] symbols = ...
int[] counts = ...
...load the data...
Array.Sort(counts, symbols);
// all done!

此时点,计数已排序,符号仍将逐个索引与它们相关的计数匹配。

关于c# - 如何在 C# 中对二维数组进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8866414/

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