【发布时间】:2011-03-09 22:24:43
【问题描述】:
我在 c# 中遇到了数组问题。例如,我们有一个存储索引数组(数组长度 0-99),一个随机生成数字数组(数组长度 0-99)和频率数组(重复多少次数字)。
例子
i: 0 1 2 3 4 ... i - 索引
n: 5 2 1 2 0 ... n - 数字
f: 1 1 2 1 0 ... f - 频率
它是计数排序的一部分。下面我们有另一个例子我想如何排序 无需计算
我:0 1 2 3 4 ...
n: 5 2 1 2 0 ...
f: 1 1 2 1 0 ...
s: 0 1 2 2 3 ... s - 已排序
-> 频率告诉我们有多少个 0,1,... 我们只写下来
int[] arr = new int[100]; //generated numbers
int[] arr2 = new int[100]; //sorted array
int[] counter = new int[100]; //frequencies
//frequencies
for (int i = 0; i < st_el; i++)
{
counter[arr[i]] += 1;
}
for(int i=0; i<arr.length; i++)
{
for(int j=0; j<arr.length; j++)
{
//I do not know how to implement?
}
}
【问题讨论】:
-
我不太明白问题是什么,你能澄清一下你想以什么方式排序哪个数组吗?
-
您希望排序后的数组
arr2成为按引用频率排列的商店编号吗?但是您示例中的s数组根本没有意义。请解释您要做什么。