Я читаю MSD по следующей ссылке.
http://www.cs.princeton.edu/~rs/AlgsDS07/18RadixSort.pdf
Здесь упоминается, что в MSD, возможно, не придется изучать все ключи на стр. 20. Как это связано с программой на странице 18. Когда я пытаюсь привести пример в прохождение кода, я не могу понять, как мы сводились к проверьте все ключи.
Благодарю!
Скажем, у вас есть: (0 действительно может быть что угодно)
600000
100000
300000
500000
400000
200000
Если вы сортируете только самую значащую цифру, вы получаете:
100000
200000
300000
400000
500000
600000
После этого массив уже отсортирован, и мы можем остановиться - нет необходимости проверять другие цифры.
Хотя на практике это может быть не так идеально, есть, конечно, случаи, когда нам не нужно оценивать все цифры всех элементов.
if (hi <= lo + 1) return;
оператор должен заставить его возвратиться, если в подмассиве есть только один элемент, предотвращая проверку ненужных данных.