Pseudo Code
Lección 4 de 9 del curso Radix Sort - Serie de 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 es el valor posicional: 1 para las unidades, 10 para las decenas, 100 para las centenas.
(x / exp) % 10extrae ese dígito. - countingSortByDigit es un ordenamiento estable basado en un solo dígito: cuenta cuántas veces aparece cada dígito, convierte esos conteos en posiciones y luego coloca los elementos de atrás hacia adelante para preservar el orden.
- radixSort simplemente ejecuta esa pasada una vez por cada dígito, deteniéndose cuando
expsupera al número más grande.
Pruébalo tú mismo
Esta lección no incluye un desafío de código.
Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.
Todas las lecciones de Radix Sort - Serie de DSA
2The Algorithm
How it works?Pseudo CodeImplementation (Part 1)Implementation (Part 2)