作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我已经阅读了很多关于对二维数组进行排序的文章,但我仍然无法掌握它,所以我想知道是否有人可以给我一些建议...
我有一个列出字母和数量的数组(我正在对一段文本进行频率分析)。我已将此数据读入一个矩形数组,需要先按最高频率对其进行排序。到目前为止,这是我的代码:
//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/
我是一名优秀的程序员,十分优秀!