Pseudo Code
Leçon 4 sur 9 du cours Radix Sort - Série DSA de Coddy.
countingSortByDigit(array, exp):
n = length(array)
output = array of size n
count = array of 10 zeros
for each x in array: # tally each digit
count[(x / exp) % 10] += 1
for d from 1 to 9: # running totals -> positions
count[d] += count[d - 1]
for k from n-1 down to 0: # place from the back (stable)
d = (array[k] / exp) % 10
count[d] -= 1
output[count[d]] = array[k]
return output
radixSort(array):
max = largest value in array
exp = 1
while max / exp > 0:
array = countingSortByDigit(array, exp)
exp = exp * 10- exp est la valeur de position : 1 pour les unités, 10 pour les dizaines, 100 pour les centaines.
(x / exp) % 10extrait ce chiffre. - countingSortByDigit est un tri stable sur un seul chiffre : il compte combien de fois chaque chiffre apparaît, transforme ces comptes en positions, puis place les éléments de l'arrière vers l'avant pour préserver l'ordre.
- radixSort exécute simplement ce passage une fois par chiffre, s'arrêtant lorsque
expdépasse le plus grand nombre.
Essayez vous-même
Cette leçon ne comprend pas de défi de code.
Cette leçon comprend un petit quiz. Commencez la leçon pour y répondre et suivre votre progression.
Toutes les leçons de Radix Sort - Série DSA
2The Algorithm
How it works?Pseudo CodeImplementation (Part 1)Implementation (Part 2)