Caluña Steven

Descargar como docx, pdf o txt
Descargar como docx, pdf o txt
Está en la página 1de 9

4

ESTRUCTURA DE DATOS

UNIVERSIDAD DE LAS FUERZAS ARMADAS


ESTRUCTURA DE DATOS(ITIN)
Nombres: Toapanta Valencia Roberto Fernando. NRC: 8495
Caizaguano Chango Carlos David.
Pilataxi Malquin Elsa Janneth.
Caluña Rojas Steven German.
Carrera Casa Mario David.
Guayasamin Guayasamin Mauricio Jovanni.
Mendoza Reyna Edison Javier
Torres Salazar Manolo

Efectuar el análisis, diseño, implementación en C++/Phyton del algoritmo de


ordenamiento usando un arreglo de colas mediante el método de Radix Sort en el
siguiente caso de uso.

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.

ALGORITMO DE RADIX SORT

Es un método no comparativo que se utiliza para ordenar números enteros o cadenas de


caracteres. 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.
Ventajas:
 Es eficiente para grandes conjuntos de datos y para números con muchos dígitos.
 Es 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.
 Es fácil de implementar y entender.
Desventajas:
 No es eficiente para conjuntos de datos pequeños o para elementos con pocos dígitos.
 Es limitado a elementos numéricos o de cadenas de caracteres y no es adecuado para
otros tipos de datos.
4
ESTRUCTURA DE DATOS

En general, es importante evaluar cuidadosamente las necesidades de un proyecto antes de elegir


un algoritmo de ordenamiento específico y considerar tanto las ventajas como las desventajas de
cada opción antes de tomar una decisión.

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 Sort MSD trabaja en sentido contrario.


Las representaciones de enteros que son procesadas por los algoritmos de ordenamiento
se les llama a menudo "claves", que pueden existir por sí mismas o asociadas a otros
datos.
Radix Sort LSD usa típicamente el siguiente orden: claves cortas aparecen antes que las
claves largas, y claves de la misma longitud son ordenadas de forma léxica. Esto coincide
con el orden normal de las representaciones de enteros, como la secuencia “1, 2, 3, 4, 5, 6,
7, 8, 9, 10”.

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

complejidad del tiempo? Si establecemos b como n, obtenemos la complejidad de tiempo


como O (n). En otras palabras, podemos ordenar una matriz de enteros con un rango de
1 an si los números están representados en base n (o cada dígito toma log 2 ( n ) bits
c

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

IMÁGENES DEL PROGRAMA EJECUTADO


4
ESTRUCTURA DE DATOS
4
ESTRUCTURA DE DATOS

También podría gustarte