Está en la página 1de 12

Radix Sort

Luis Bustillo Marcos Escudero Edgar Bravo Fernando Salcido Miguel Avila

Historia
1880: EUA no puede terminar el censo de la dcada anterior.

1880: Herman Hollerith, empleado de la oficina del censo con 20 aos de edad, inventa una mquina tabuladora elctrica. Implementacin fsica del radix sort.

Definicin
Algoritmo de ordenamiento que ordena enteros procesando sus dgitos de forma individual. LSD (Dgito menos significativo) MSD (Dgito ms significativo)

Radix Sort LSD


Claves: representaciones de enteros procesadas por algoritmos de ordenamiento. 1. Claves cortas aparecen antes que las claves largas. 2. Claves de la misma longitud se ordenan de forma lxica. Ejemplo:
1, 2, 3, 4, 5, 6, 7, 8, 9, 10

Radix Sort MSD


Utiliza orden lxico Ejemplo:
b, ba, c, d, e, f, g, h, i, j 1, 10, 2, 3, 4, 5, 6, 7, 8, 9

Ejemplo
Lista Original
25 57 48 37 12 92 86 33

Radix Sort LSD


12, 92, 33, 25, 86, 57, 37, 48

Radix Sort MSD


12, 25, 33, 37, 48, 57, 86, 92

Video
Radix Sort on the Playground

Algoritmo
public static void radixSort (int [] data) { boolean continuar = true; int divisor = 1; Deque[] compartimiento = new Deque[10]; for (int i = 0; i < 10; i++) compartimiento[i] = new LinkedList();

while (existe) {
continuar = false; // Copia los valores a la lista adecuada dentro de la fila for (int j = 0; j < data.length; j++) { int indiceHash = (data[j] / divisor) % 10; if (indiceHash > 0) continuar = true; compartimiento[indiceHash].addLast(new Integer(data[j])); } divisor *= 10; int i = 0; // Luego los regresa al compartimiento for (int k = 0; k < 10; k++) { while (! compartimiento[k].isEmpty()) { Integer val = (Integer) compartimiento[k].getFirst(); compartimiento[k].removeFirst(); data[i++] = val.intValue(); } } } }

Tiempos
Archivo
P1.txt P2.txt P3.txt P4.txt P5.txt P6.txt

Tiempo Promedio (con 5 pruebas)


43.4 milisegundos 58.8 milisegundos 70.2 milisegundos 73.8 milisegundos 86.4 milisegundos 77.2 milisegundos

Nmero de Bsquedas Binarias


Archivo P1.txt P2.txt P3.txt P4.txt P5.txt P6.txt Bsquedas Promedio (con 20 pruebas) 8.45 Bsquedas 9.75 Bsquedas 9.95 Bsquedas Bsquedas Bsquedas Bsquedas

Ventajas
Ordenamiento es razonablemente eficiente si el nmero de dgitos en las llaves no es demasiado grande.

Desventajas
Espacio extra: secciones Utilizando arreglos
Espacio datos numrico 10*n Espacio datos alfabticos 24*n Tiempo moviendo datos de la lista a la seccin y de regreso.