Está en la página 1de 10

Ordenamiento

Radix Sort
Hazel Sequeira Avalos
Alberto Lpez Reyes

Algoritmo y estructura de datos II


Prof. Lizzeth Ramrez

Radix Sorts
HISTORIA
TEORIA
ANALISIS DEL ALGORITMO EN TIEMPO
DE EJECUCION

Historia

Se dice que este mtodo naci de la idea de Herman Hollerith


en 1890 al crear la maquina tabuladora, en la cual se
empleaban tarjetas perforadas para realizar el censo de ese
ao en Estados Unidos.

Al final, despus de unas horas, la maquina entregaba todo un


grupo de hojas listas para ser procesadas en un computador.

En el censo de 1880 se tomaron 10 aos para procesar toda la


informacin, pero con las tarjetas perforadas, en la maquina
que inclua un card sorter se tomaron cerca de 6 semanas.

ordenadora de tarjetas. La cual, utilizando el


mtodo de Radix-Sort, concatenaba cada hoja
dependiendo de la ubicacin de las ultimas 3
columnas, que contenan las cifras para el
acomodo de tarjetas, estando numerado del 0 al
9.

Radix sort
Es un algoritmo de ordenamiento que ordena
enteros procesando sus dgitos de forma
individual.
Como
los
enteros
pueden
representar cadenas de caracteres (por
ejemplo, nombres o fechas) y, especialmente,
nmeros en punto flotante , radix sort no est
limitado slo a los enteros.

Ventajas
El

ordenamiento es razonablemente eficiente si el nmero de


dgitos en las llaves no es demasiado grande.
Si

las mquinas tienen la ventaja de ordenar los dgitos


(sobre todo si estn en binario) lo ejecutaran con mucho
mayor rapidez.
Aun

teniendo llaves muy grandes, el algoritmo es


sumamente eficiente ya que compara digito por digito de
todas las llaves y las va acomodando en las "secciones"

Desventajas
El espacio, ocupamos espacio extra para por lo
menos un digito adicional en lo que estamos intercambiando los datos de entrada. Va aumentando el
espacio que ocuparemos dependiendo del tamao
de la lista de los datos, como usamos arreglos para
las "secciones" estas tendrn que ser muy grandes,
porque no podemos asumir que los datos se
acomodaran uniformemente en las "secciones".

Ejemplo paso a paso


El vector a ordenar es el siguiente:
34, 56, 14, 76, 2, 58, 95, 36,
76

Como primer paso, se toma el


primer valor de nuestro vector y
compara el valor menos
significativo (unidades) con cada
una de nuestras claves, hasta que
se iguale a una de ellas, entonces
har lo mismo con el segundo valor
del vector y as sucesivamente
En la primera iteracin el vector
queda de la siguiente forma:
2, 34, 14, 95, 56,76,36,76,58

0
1
2

3
4

34

95

56

7
8
9

58

14

76

36 76

14

2
3

34 36

En la segunda iteracin, para este caso, logramos


nuestro vector ordenado de la siguiente forma:

56 58

2, 14, 34, 36, 56, 58, 76, 76, 95

4
5
6
7

76 76

8
9

02, 34, 14, 95,


56,76,36,76,58
El siguiente paso es similar, pero ahora se
compara el segundo valor menos significativo
(decenas), de igual forma uno por uno hasta que
encuentren su igual.

95

Existen casos para los que es necesario mas de 2


iteraciones, todo depende de cuantos dgitos
tenga el numero de mayor valor en el vector. Sin
embargo, se repite el mismo procedimiento.

Anlisis del algoritmo en tiempo de


ejecucin.
Debido a que el ciclo for (k= 0;k<m;k++) externo se
recorremveces (una para cada dgito) y el ciclo
interiorn 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 nmero
que puede ser una llave lo es en realidad)mse
aproxima a logn, por lo que (m*n) se aproxima a
(nlogn).
Si la cantidad de dgitos es grande, en ocasiones es ms
eficiente ordenar el archivo aplicando primero el
ordenamiento de raz a los dgitos ms significativos y
despus utilizando insercin directa sobre el archivo
ordenado.