Caluña Steven
Caluña Steven
Caluña Steven
ESTRUCTURA DE DATOS
Análisis
Radix Sort
Es un método de ordenamiento no comparativo que se utiliza para ordenar números enteros o
cadenas de caracteres. A diferencia de otros algoritmos de ordenamiento que comparan elementos
entre sí, Radix Sort funciona separando los dígitos de cada elemento y colocándolos en diferentes
colas basadas en su valor de dígito. Luego, los elementos se vuelven a reunir en el orden correcto,
un dígito a la vez.
Se basa en el hecho de que los dígitos más significativos tienen un impacto más grande en el valor
total de un número. Por lo tanto, es posible ordenar números en función de los dígitos más
significativos primero y luego ordenar los números con dígitos menos significativos.
El proceso de ordenamiento con Radix Sort se divide en varios pasos. Primero, se separan los
dígitos de cada elemento y se colocan en una cola específica basada en su valor de dígito. Por
ejemplo, los elementos con un dígito de 0 en una posición específica se colocan en una cola
4
ESTRUCTURA DE DATOS
específica para 0, los elementos con un dígito de 1 en esa posición se colocan en una cola
específica para 1, y así sucesivamente. Luego, los elementos de cada cola se vuelven a reunir para
formar un nuevo arreglo. Este proceso se repite varias veces, cada vez con un dígito diferente y en
una posición diferente, hasta que todos los dígitos hayan sido considerados y el arreglo esté
ordenado.
Uno de los principales beneficios de Radix Sort es su capacidad para manejar grandes conjuntos
de datos y para números con muchos dígitos. Esto se debe a que el algoritmo no requiere
comparaciones entre elementos, lo que significa que la complejidad del algoritmo no aumenta con
el tamaño del conjunto de datos.
Además, Radix Sort es un algoritmo estable, lo que significa que los elementos con el mismo valor
se mantienen en el mismo orden en el que se encontraban antes de ser ordenados. Esto es
importante en situaciones donde se desea preservar la relación original entre elementos con
valores iguales.
Sin embargo, Radix Sort también tiene algunas desventajas. Una de ellas es que solo funciona con
números enteros o cadenas de caracteres, lo que significa que no es adecuado para otros tipos de
datos, como flotantes o datos complejos. Además, el algoritmo requiere una cantidad significativa
de memoria adicional para almacenar las colas, lo que puede ser un problema en situaciones de
memoria limitada.
Otro factor a considerar es que Radix Sort es un algoritmo más lento que otros métodos de
ordenamiento, como QuickSort o MergeSort, especialmente para pequeños conjuntos de datos.
Esto se debe a que el proceso de separación y reunión de los elementos en diferentes colas
requiere una cantidad significativa de tiempo y recursos.
Diseño
La mayor parte de los ordenadores digitales representan internamente todos sus datos
como representaciones electrónicas de números binarios, por lo que procesar los dígitos
de las representaciones de enteros por representaciones de grupos de dígitos binarios es
lo más conveniente.
Existen dos clasificaciones de Radix Sort: el de dígito menos significativo (LSD) y el de
dígito más significativo (MSD).
Radix Sort LSD procesa las representaciones de enteros empezando por el dígito menos
significativo y moviéndose hacia el dígito más significativo.
Radix sorts MSD usa orden léxico, que es ideal para la ordenación de cadenas de
caracteres, como las palabras o representaciones de enteros de longitud fija. Una
secuencia como “b, c, d, e, f, g, h, i, j, ba” será ordenada léxicamente como “b, ba, c, d, e, f,
g, h, i, j”.
Si se usa orden léxico para ordenar representaciones de enteros de longitud variable,
entonces la ordenación de las representaciones de los números del 1 al 10 será “1, 10, 2,
3, 4, 5, 6, 7, 8, 9”, como si las claves más cortas estuvieran justificadas a la izquierda y
rellenadas a la derecha con espacios en blanco, para hacerlas tan largas como la clave
más larga, para el propósito de este ordenamiento, cabe destacar que este método no
funciona para la estructura de datos debido a que los ciclos for que se implementaran
marcaran error debido a las matrices bidimensionales.
Complejidad de Algoritmo
¿
Sea d dígitos en los enteros de entrada. Radix Sort toma; O(d ( n+ b ) )
tiempo donde b es la base para representar números, por ejemplo, para el sistema
decimal, b es 10.
¿Cuál es el valor de d? Si k es el valor máximo posible, entonces d sería 0 ¿. Entonces, la
complejidad general del tiempo es
O¿
Lo que se ve más que la complejidad temporal de los algoritmos de clasificación basados
en comparaciones para un k grande.
Primero limitemos k. Sea k ≤nc donde c es una constante. En ese caso, la complejidad se
convierte en O(nlog b ( n ) ). Pero todavía no supera a los algoritmos de clasificación basados
en comparaciones.
¿Y si aumentamos el valor de b? ¿Cuál debería ser el valor de b para hacer lineal la
4
ESTRUCTURA DE DATOS
Implementación
4
ESTRUCTURA DE DATOS
Orden: Utilizar los números de cédula de identidad de cada integrante del grupo, de
manera que cada número de cédula será ingresado en parejas de números,
comenzando por el número de cédula del primer Apellido ordenado alfabética y
ascendentemente, y así sucesivamente con los restantes integrantes del grupo y sus
respectivos números de cédula.
4
ESTRUCTURA DE DATOS
4
ESTRUCTURA DE DATOS