Reporte 4 - Algoritmos de Ordenamiento y Busqueda
Reporte 4 - Algoritmos de Ordenamiento y Busqueda
Reporte 4 - Algoritmos de Ordenamiento y Busqueda
DE NUEVO LEÓN
FACULTAD DE INGENIERÍA
MECÁNICA Y ELÉCTRICA
UNIDAD DE APRENDIZAJE
ALGORITMOS
COMPUTACIONALES
REPORTE 4. “ALGORITMOS DE
ORDENAMIENTO Y BÚSQUEDA”
FECHA: 24-OCTUBRE-2020
INTRODUCCIÓN
Existen muchos distintos tipos de algoritmos que podemos usar al manejar datos.
En este documento en particular, se darán a conocer el algoritmo de ordenamiento
y de búsqueda, así como sus respectivas clasificaciones.
Ordenación de arreglos.
Ordenación de archivos.
ORDENACIÓN INTERNA
Bubblesort
Es el más sencillo de los algoritmos de ordenamiento, revisa cada elemento
de la lista que va a ser ordenada con el siguiente, intercambiándolos de
posición si están en el orden equivocado.
En este es necesario revisar varias veces toda la lista hasta que no se
necesiten más intercambios.
Este algoritmo obtiene su nombre de la forma con la que suben por la lista
los elementos durante los intercambios, como si fueran "burbujas".
Ejemplo:
Mergesort
La idea de mergesort es la misma para todos los métodos de ordenamiento
externo. Ordenar, mediante algún algoritmo de ordenamiento interno, una
cantidad de datos que pueda almacenarse en memoria.
Combina los distintos grupos de datos mediante el método de mezcla. El
algoritmo de mezcla parte de dos vectores de entrada A y B produciendo un
vector de salida C.
Se apoya en tres contadores:
1. Acont
2. Bcont
3. Ccont
En cada paso el menor de los valores A y B se copia en la próxima posición
de C, actualizándose los contadores apropiados. Cuando uno de los
vectores
de entrada se acaba, el resto del otro vector se copia en C.
Ejemplo:
Quicksort
Es el algoritmo de ordenamiento más rápido. El algoritmo quicksort es
recursivo y está formado por cuatro pasos:
1. Dado un conjunto S de números, si el número de elementos es menor o
igual a 1, terminar.
2. Escoger un elemento cualquiera de S, el cuál será llamado pivote {v}.
3. Hacer una partición de S-{v} en dos grupos disjuntos:
I = {x ∈ S – {v} | x < v}
D= {x ∈ S – {v} | x > v}
4. Devolver el resultado de Quicksort (I), seguido de v y luego el resultado
de Quicksort (D).
Ejemplo:
ORDENACIÓN EXTERNA
Intercalación
Pre condiciones:
Los archivos de entrada contienen registros homogéneos.
Los archivos de entrada deben estar ordenados en base a la misma
llave.
Post condiciones:
El archivo de salida quedará ordenado por la misma llave que los
archivos de entrada.
El archivo de salida contendrá todos los registros de los archivos
de entrada.
Mezcla directa
Suponer que 900 MB de información deben ser ordenados utilizando
únicamente 100 MB de RAM.
1. Leer 100MB de información en memoria principal y ordenar utilizando un
algoritmo tradicional (normalmente QSort).
2. Escribir la información ordenada en disco.
3. Repetir hasta que toda la información esté ordenada en pedazos de 100
MB.
4.Mezclar todos los pedazos ordenados:
Leer los primeros 10MB de cada pedazo ordenado a la memoria
principal (total de 90 MB) y dejar 10 MB restantes para el buffer de
salida.
Buscar el menor de los nueve pedazos mezclándolos y grabar el
resultado en el buffer de salida.
El pedazo de los 9 buffers leídos que quedó vacío, se llena con los
siguientes 10 MB de su pedazo original de 100 MB o se marca como
completado si ya no se tienen más registros.
ALGORITMO DE BÚSQUEDA
Definición:
Para encontrar un dato dentro de un arreglo, para ello existen diversos algoritmos
que varían en complejidad, eficiencia, tamaño del dominio de búsqueda.
Búsqueda Secuencial
Ejemplo:
Búsqueda Binaria
Una búsqueda más eficiente puede hacerse sobre un arreglo ordenado. Una de
éstas es la búsqueda binaria. Ésta compara si el valor buscado está en la mitad
superior o inferior. En la que esté, subdivido nuevamente, y así sucesivamente
hasta encontrar el valor.
Ejemplo:
CONCLUSIÓN
Una de las principales conclusiones que se extraen del documento es que para que
un algoritmo de ordenamiento sea el más rápido para cualquier conjunto de datos a
ordenar, debe ser consciente tanto de la jerarquía de memoria del computador,
como de la forma de ordenarse de los elementos.
BIBLIOGRAFÍA