Guía Lab AlgComp
Guía Lab AlgComp
Guía Lab AlgComp
Registro: Es un grupo de datos que conforman la lista, estos datos pueden ser
atómicos (enteros, decimales, float, booleanos o de texto)
Algoritmos de ordenamiento
Selección No estable No
Insercción Estable No
Pasos:
1. Tomar los primeros dos valores, y en caso de que el primer valor sea
mayor al otro se cambian de lugar.
2. Seguir con el siguiente par de números y hacer el mismo proceso
(segundo y tercer valor).
3. El mismo proceso con el otro par de números (tercer y cuarto valor).
4. Así sucesivamente hasta que esté en orden.
Ordenamiento por selección
Es uno de los más utilizados.
Pasos:
1. Buscas el elemento más pequeño de la lista
2. Lo intercambias o comparas con el elemento ubicado en la primera
posición
3. Buscas el segundo elemento más pequeño de la lista
4. Lo intercambias con el elemento que ocupa la segunda posición
5. Repites el proceso N cantidad de veces.
Ventajas:
● Fácil implementación
● No requiere memoria adicional
● Realiza pocos intercambios
● Buen rendimiento
Desventajas:
● Para nosotros, el proceso sigue siendo lento
Ordenamiento por inserción
Algoritmo bastante sencillo, en el cual se desplazan los elementos a una
sección llamada “temp” al momento de desplazarse para no perderlos.
● Cuando “temp” está vacío se le pone null, la cual es una variable vacía
no cero.
Pasos:
1. Guardar una copia del elemento actual y desplazas todos los elementos
de la lista mayores a él hacía la derecha (en caso de ser ASCENDENTE)
2. Copias el elemento guardados en la posición del último elemento que se
desplazó
3. Repites el proceso hasta que se ordene toda la información (usa FOR)
Características:
● No importa si “Tam” es par o impar
● Con este método siempre se puede lograr el ordenamiento en una sola
vuelta.
Ventajas:
● Fácil implementación
● Requerimiento mínimo de memoria.
Desventajas:
● Para nosotros, es un método lento.
Pasos:
1. Eliges un elemento de la lista, puede ser cualquiera (con que elijas una
posición que tenga más de 2 valores por los dos lados) y lo vas a llamar
pivote o elemento de división.
2. Buscas la posición que le corresponde a este elemento.
3. Acomodas los elementos en la lista a cada lado del pivote, de manera
que a un lado queden los menores a él, y al otro lado los mayores.
4. Se separa la lista en 2 sublistas.
5. Se realiza esto de manera recursiva para cada sublista mientras éstas
tengan un largo mayor que uno.
Ventajas:
● Muy rápido.
● No requiere memoria adicional.
Desventajas:
● Su implementación es un poco más compleja.
● Utiliza muchos recursos (mucha RAM).
● Muchas comparaciones.
Contienen:
● Los valores junto con su clave.
● Arreglo: que es el lugar donde se irán guardando los valores.
● Una función hash: se encarga de procesar la clave con alguna técnica
en específico - ej. sumar el número de letras en un nombre y
multiplicarlo por 3- y transformar la clave en un índice.
● Slots o bucket: el lugar donde se guardarán los valores, determinado
por el índice.
● Índice: indica a qué slot/bucket irá el valor, de esta manera cuando
quieras acceder a N valor podrás utilizar su índice para obtener ese
valor y que no sea necesario recorrer todos los datos del arreglo.
Función: las tablas hash son como un sistema de almacenamiento rápido para
pares clave-valor. Su función es permitir buscar, añadir y eliminar datos de
forma eficiente. Usan una "función hash" para convertir una clave en un
número, que luego se usa para encontrar rápidamente el valor
correspondiente en la tabla.
Estas tablas se utilizan en muchos lugares donde se necesita acceso rápido a
datos asociados a una clave, como en diccionarios y cachés.