ORDENAMIENTO RADIX
Equipo 3
• Arenas Sapien Jorge Iván
• De La Rosa Bernal José Leonel
Radix sort
ANTECEDENTES
 Se di ce que este método naci ó de la i dea de Herman Ho llerith en 1 890 al
crear la maquina tabuladora, en la cual se empleaban tarjetas per foradas
para realizar el censo de ese año en Estados Unidos.
 Al final , despues de unas horas, la maquina entregaba todo un grupo de
hojas listas para ser procesadas en un computador.
 En el censo de 1 880 se tomaron 10 años para procesar toda la
informaci ón, pero con las tarjetas per foradas, en l a maquina que incl uía
un “card sor ter” se tomaron cerca de 6 semanas.
 La idea origi nal de Holleri th era ordenar empezando por el digito más
significativo .
 Es de esta forma que surgio una maquina ordenadora de
tarjetas. La cual, utilizando el metodo de Radix-Sort,
concatenaba cada hoja dependiendo de la ubicacion de las
ultimas 3 columnas, que contenían las cifras para el acomodo
de tarjetas, estando numerado del 0 al 9.
RADIX SORT
 A este método también se le llama “ordenamiento de raíz”.
 Este ordenamiento se basa en los valores de los dígitos reales
en las representaciones de posiciones de los números que se
ordenan. Por ejemplo, el número235 en notación decimal se
escribe con un 2 en la posición de centenas, un 3 en la
posición de decenas y un5 en la posición de unidades.
 Tome cada número en el orden en el cual aparecen en el
archivo y colóquelos en una de las diez colas (0...9)
dependiendo del valor del dígito que es procesado.
 Empezando con la cola de los números con dígito 0 y
terminando con la cola de números con dígito 9. Retorne los
números al archivo original en el orden en el cual fueron
colocados en la cola,(empezar con el dígito menos
significativo y concluir con el más significativo).
REGLAS PARA ORDENAR
 El más grande de dos enteros de igual longitud se determina
del modo siguiente:
1. Empezar en el dígito más significativo y avanzar por los
dígitos menos significativos mientras coinciden los dígitos
correspondientes en los dos números.
1. El número con el dígito más grande en la primera posición
en la cual los dígitos de los dos números no coinciden es el
mayor de los dos (por supuesto sí coinciden todos los dígitos
de ambos números, son iguales).
APLICACIONES
Tiene muchas entre ellas:
 Para ordenar números enteros o flotantes
 Para ordenar letras
 En manejo de archivos ejemplo el md5, encargado de poder
mandar archivos mayor de 1gb utiliza el Radix Sort en su
procedimiento.
 Para todo tipo de ordenamiento de números aleatorios.
PSEUDOCÓDIGO
 RadixSort (Ordenar array A, tamaño)
Crear todas las bandejas o contenedores.
Desde el dígito menos significativo de la cifra más significativa
{
Para cada elemento (de la primera a la última)
{
Aislar el valor del dígito significativo.
Guarde el elemento en el contenedor con la
correspondiente valor
del
dígito significativo.
}
Para cada intervalo (de la primera a la última)
{
Recuperar todos los elementos y guardarlos de nuevo en la
matriz.
}
}
Destruye todos los contenedores
http://www.gamedev.net/page/resources/_/technical/general-programming/radix-sort-r703
CODIGO
Radixsort.C
CARACTERÍSTICAS
Radix
Sort
Mejor Caso
Peor Caso
Caso
Promedio
Estabilida
d
Memoria
Adicional
Comparació
n
O(n)
O(n)
O(n)
Estable
Si
No compara
CARACTERÍSTICAS
 Debido a que el ciclo for (i = 1; i < m; i++) externo se recorre
m veces (una para cada dígito) y el ciclo interior n veces (una
para cada elemento en el archivo) el ordenamiento es de
aproximadamente (m*n).
 Si las llaves son complejas (es decir, si casi cada número que
puede ser una llave lo es en realidad) m se aproxima a log n,
por lo que (m*n) se aproxima a (n log n).
 Si la cantidad de dígitos es grande, en ocasiones es más
eficiente
ordenar
el
archivo
aplicando
primero
el
ordenamiento de raíz a los dígitos más significativos y
después utilizando inserción directa sobre el archivo
ordenado.
VENTAJAS
 El ordenamiento es razonablemente eficiente si el número de
dígitos en las llaves no es demasiado grande.
 Si las máquinas tienen la ventaja de ordenar los dígitos
(sobre todo si están en binario) lo ejecutarían con mucho
mayor rapidez de lo que ejecutan una comparación de dos
llaves completas.
DESVENTAJAS
Esta es considerada ventaja y desventaja:
 Se requiere conocer la cantidad de dígitos del valor máximo
(para saber cuando el método ya acomodo todos los
elementos).
 Se requiere de espacio para almacenar los punteros del frente
y de la parte posterior de la cola, además de un campo
adicional en cada registro que se utiliza como puntero a la
lista encadenada.
FUENTES
 Algoritmos y estrctura de datos ; Una perspectiva en C ;
Luis Joyanes Aguilar, Ignacio zahonero martinrz, Ed. Mc graw
hill.
 http://www.gamedev.net/page/resources/_/technical/general programming/radix-sor t-r703
 http://es.wikipedia.org/wiki/Ordenamiento_Radix
 http://estructura-de-datos-itsav.blogspot.mx/2012/03/621radix-ordenacion.html
 http://es.scribd.com/doc/19540984/RADIX
Descargar

Ordenamiento Radix