Я читаю и узнаю о реализации сортировки по основанию Java, как показано ниже. Было бы здорово, если бы кто-нибудь разъяснил логическое значение pointTo
, index
и globalPtr
.
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];
}
globalPtr
: следующий индекс для выделения. Ссылка на hackerrank требует входа в систему — содержание такое же, как у lydxlx? - person greybeard   schedule 20.02.2016bucketTail[value] = next[bucketTail[value]] = globalPtr
, почему мы не можем просто использоватьbucketTail[value] = next[bucketTail[value]]=index[i]
, не видя слишком много значенийglobalPtr
? Ваш совет приветствуется. Спасибо. - person Lin Ma   schedule 21.02.2016radixSort0
, предустановлены или используются снаружи. (Если бы это был близкий код lydxlx,globalPtr, pointTo, bucketHead, bucketTail
иnext
могли бы также быть локальными для radixSort0&1.) Я был бы удивлен, если бы база для этого кода не была взята из учебника по алгоритмам. - person greybeard   schedule 21.02.2016bucketTail[value] = next[bucketTail[value]] = globalPtr
, почему мы не можем просто использоватьbucketTail[value] = next[bucketTail[value]]=index[i]
, не видеть слишком много значенийglobalPtr
? Спасибо. - person Lin Ma   schedule 21.02.2016bucketTail[value] = next[bucketTail[value]]=index[i]
, а не использоватьpointTo
иglobalPrt
. Спасибо. - person Lin Ma   schedule 22.02.2016