我在阅读并学习基数排序的Java实现,如下所示。如果有人能够澄清pointTo
,index
和globalPtr
的逻辑含义,那将会很棒。有关基数排序的Java实现的解释
https://www.hackerrank.com/challenges/string-similarity/editorial
private void radixSort0() {
globalPtr = 0;
Arrays.fill(bucketHead, -1);
Arrays.fill(next, -1);
for (int i = 0; i < n; i++) {
int value = nr0[index[i]];
if (bucketHead[value] == -1) bucketHead[value] = bucketTail[value] = globalPtr;
else bucketTail[value] = next[bucketTail[value]] = globalPtr;
pointTo[globalPtr++] = index[i];
}
int ptr = 0;
for (int i = 0; i < M; i++)
for (int j = bucketHead[i]; j != -1; j = next[j])
index[ptr++] = pointTo[j];
}
donot发布hackerrank问题的答案更好地尝试一些东西,并张贴您的代码进行一些修改。快乐编码 – SmashCode
永远不要模仿这种风格来命名,(不)评论,代码,程序。简单的部分是'globalPtr':allocate_的_next索引。与hackerrank的链接需要登录 - 内容是否与[lydxlx's](https://github.com/zeyuanxy/hacker-rank/blob/master/algorithms/strings/string-similarity/Solution.Java)相同? – greybeard
谢谢@greybeard,那么pointTo的逻辑意义是什么? –