我在閱讀並學習基數排序的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的邏輯意義是什麼? –