【发布时间】:2013-08-26 22:11:33
【问题描述】:
我对此算法有疑问:
(幻灯片拍摄from here.)
int N = a.length;
int[] count = new int[R];
for (int i = 0; i < N; i++)
count[a[i]+1]++;
for (int k = 1; k < 256; k++)
count[k] += count[k-1];
for (int i = 0; i < N; i++)
temp[count[a[i]++]] = a[i]
for (int i = 0; i < N; i++)
a[i] = temp[i];
有人可以详细说明我们将记录从 a[] 移动到 temp[] 的第三个 for 循环吗?
我知道在我们累积计数后,它们应该是某种偏移量。所以我们可以在 temp[] 中的适当位置插入字母。
我只是不确定 a[i]++ 在那里做了什么。(
感谢任何帮助。
【问题讨论】:
标签: java c++ algorithm sorting