Docsity
Docsity

Prepara tus exámenes
Prepara tus exámenes

Prepara tus exámenes y mejora tus resultados gracias a la gran cantidad de recursos disponibles en Docsity


Consigue puntos base para descargar
Consigue puntos base para descargar

Gana puntos ayudando a otros estudiantes o consíguelos activando un Plan Premium


Orientación Universidad
Orientación Universidad


Algoritmos de Búsqueda y Ordenación: Secuencial, Binaria, Inserción y Ordenación - Prof. O, Apuntes de Informática

Una introducción a los algoritmos de búsqueda y ordenación, con un enfoque en la búsqueda secuencial y la búsqueda binaria. Además, se abordan algoritmos de inserción y diferentes métodos de ordenación, como bubblesort, inserción directa y selección directa. Se incluyen diagramas y explicaciones detalladas.

Tipo: Apuntes

Antes del 2010

Subido el 21/10/2007

rayista
rayista 🇪🇸

4

(8)

9 documentos

1 / 18

Toggle sidebar

Esta página no es visible en la vista previa

¡No te pierdas las partes importantes!

bg1
1
Algoritmos sobre
Listas
TEMA 6
Manuel Pereira González
V1.1
Agenda
Introducción
Algoritmos de Búsqueda
Búsqueda Secuencial
Búsqueda Binaria
Análisis de Eficiencia
Algoritmos de Inserción
Algoritmos de Ordenación
Métodos Directos
Métodos Avanzados
Medición Experimental de la Eficiencia
Resumen
pf3
pf4
pf5
pf8
pf9
pfa
pfd
pfe
pff
pf12

Vista previa parcial del texto

¡Descarga Algoritmos de Búsqueda y Ordenación: Secuencial, Binaria, Inserción y Ordenación - Prof. O y más Apuntes en PDF de Informática solo en Docsity!

Algoritmos sobre

Listas

TEMA 6

V1.1 Manuel Pereira González

Agenda

ƒ Introducción ƒ Algoritmos de Búsqueda ƒ Búsqueda Secuencial ƒ Búsqueda Binaria ƒ Análisis de Eficiencia ƒ Algoritmos de Inserción ƒ Algoritmos de Ordenación ƒ Métodos Directos ƒ Métodos Avanzados ƒ Medición Experimental de la Eficiencia ƒ Resumen

Introducción

ƒ Importancia de Organizar la Información ƒ Ej: Buscar número de teléfono en la guía ƒ Rápido, gracias a que está ordenado alfabéticamente ƒ En informática, igual que en la vida real, frecuentemente es necesario buscar información entre mucha disponible, para lo que también se ordena. ƒ Existen diversos algoritmos para ordenar una lista de elementos y buscar dentro de una lista ordenada

Agenda

ƒ Introducción ƒ Algoritmos de Búsqueda ƒ Búsqueda Secuencial ƒ Búsqueda Binaria ƒ Análisis de Eficiencia ƒ Algoritmos de Inserción ƒ Algoritmos de Ordenación ƒ Métodos Directos ƒ Métodos Avanzados ƒ Medición Experimental de la Eficiencia ƒ Resumen

Algoritmos de Búsqueda:

Búsqueda Binaria

ƒ El array debe estar ordenado ƒ Muy eficiente: ƒ Eficiencia: O(log 2 n) ƒ El tiempo que tarda el algoritmo en ejecutarse es aproximadamente proporcional al logaritmo en base 2 de n ƒ Ejecución: ƒ Se mira el elemento del centro de la lista ƒ Si es el buscado, se devuelve ƒ Si es mayor que el buscado, se repite la búsqueda sobre la primera mitad de la lista ƒ Si es menor que el buscado, se repite la búsqueda sobre la segunda mitad de la lista ƒ Se repite el algoritmo hasta que se encuentra el elemento o se llega a una lista de longitud cero (el elemento no existe).

Algoritmos de Búsqueda:

Búsqueda Binaria

Algoritmos de Búsqueda:

Búsqueda Binaria

Algoritmos de Búsqueda:

Análisis de Eficiencia

ƒ Estudio de la eficiencia en la peor situación: cuando el elemento no se encuentra en la lista ƒ Búsqueda Secuencial: El número de comparaciones a realizar es n ƒ Búsqueda Binaria: En cada comparación se puede eliminar la mitad de los elementos del array. ƒ Primera comparación: array de n elementos ƒ Segunda comparación: array de n/2 elementos ƒ Tercera comparación: array de n/4 elementos ƒ Cuarta comparación: array de n/8 elementos ƒ … ƒ C-ésima comparación: array de n/2C^ elementos

Algoritmos de Inserción

ƒ Inserción en un Array no ordenado

ƒ Necesario indicar la posición en la que se desea insertar el elemento (posición p) ƒ Hay que “abrir hueco” en la posición p, desplazando una posición a la derecha los elementos desde p hasta el final.

ƒ Inserción en un Array ordenado

ƒ No es necesario indicar la posición, el elemento a insertar ocupará la posición que le corresponde según su valor

Algoritmos de Inserción

ƒ Inserción en un Array ordenado. Dos posibles situaciones: ƒ 1) Los elementos no pueden encontrarse repetidos en la lista. Se busca la posición p en la que insertar (búsqueda binaria). Si el elemento a insertar ya se encuentra en la lista, se genera un código de error, en caso contrario se inserta en la posición p. ƒ 2) Los elementos pueden repetirse. Se busca la posición p en la que insertar (búsqueda binaria) y se inserta el nuevo elemento en la posición p

Algoritmos de Inserción

Agenda

ƒ Introducción ƒ Algoritmos de Búsqueda ƒ Búsqueda Secuencial ƒ Búsqueda Binaria ƒ Análisis de Eficiencia ƒ Algoritmos de Inserción ƒ Algoritmos de Ordenación ƒ Métodos Directos ƒ Métodos Avanzados ƒ Medición Experimental de la Eficiencia ƒ Resumen

Métodos Directos: Inserción

Directa

ƒ Insertar cada elemento, comenzando desde el segundo y hasta el final, en el lugar que le corresponde en la secuencia ordenada que se va formando a su izquierda ƒ En la primera pasada se selecciona el segundo elemento y se inserta en la secuencia ordenada formada por el primer elemento ƒ En la segunda pasada se inserta el tercer elemento en la secuencia ordenada formada por los dos primeros ƒ … ƒ Consiste en n-1 inserciones en una lista ordenada

Métodos Directos: Inserción

Directa

Métodos Directos: Selección

Directa

ƒ Se selecciona de la lista completa el

elemento con menor valor y se intercambia

con el primero (el primer elemento queda

definitivamente ordenado).

ƒ A continuación, se busca el elemento de

menor valor de la sublista comprendida

entre el segundo y el último, y se

intercambia con el segundo elemento

ƒ Así sucesivamente…

Métodos Directos: Selección

Directa

Métodos Avanzados: Ordenación

Rápida o QuickSort

ƒ Algoritmo:

ƒ Se elige un elemento del array (pivote), y

se dejan a su izquierda todos los valores

menores o iguales que él, y a la derecha

los mayores

ƒ Se realiza la misma operación con las

partes resultantes de la izquierda y la

derecha del pivote

ƒ Así sucesivamente, hasta que las partes

tengan tamaño 1 (array completamente

ordenado)

Métodos Avanzados: Ordenación

Rápida o QuickSort

Métodos Avanzados: Método del Montículo o HeapSort

ƒ Un montículo (heap) es una estructura de Árbol con información perteneciente a un conjunto ordenado. ƒ Característica de un montículo: cada nodo tiene un valor mayor que el de todos sus nodos hijos -> El nodo raiz contiene el mayor elemento. ƒ Algoritmos HeapSort: ƒ 1) Construir un montículo ƒ 2) Sacar el nodo raiz (mayor) ƒ 3) Reconstruir el montículo con los elementos restantes ƒ 4) Volver al paso 2) mientras queden elementos en el montículo

Métodos Avanzados: Método del Montículo o HeapSort

98

40 15

21 6 3 12

14

98 40 15 21 6 3 12 14

Posición^0 1 2 3 4 5 6

Valor

Posición del Hijo Derecho = 2 * (Posición del Padre + 1) Posición del Hijo Izquierdo = (2 * (Posición del padre Padre + 1)) - 1

Representación en Array De un Heap Binario

Agenda

ƒ Introducción ƒ Algoritmos de Búsqueda ƒ Búsqueda Secuencial ƒ Búsqueda Binaria ƒ Análisis de Eficiencia ƒ Algoritmos de Inserción ƒ Algoritmos de Ordenación ƒ Métodos Directos ƒ Métodos Avanzados ƒ Medición Experimental de la Eficiencia ƒ Resumen

Medición Experimental de la

Eficiencia

ƒ Tiempos (en milliseg) que se han tardado experimentalmente en ordenar arrays generados aleatoriamente según todos los algoritmos estudiados

HeapSort^176290389493692720844

QuickSort^76123163212267449360

Selección 16.962 39.192 69.083 108.254 157.849 226.166 324.

Inserción 13.311 31.966 55.043 86.794 127.112 197.123 272.

Burbuja 41.924 116.538 170.098 266.772 391.321 534.290 697.

10.000 15.000 20.000 25.000 30.000 35.000 40.

Agenda

ƒ Introducción ƒ Algoritmos de Búsqueda ƒ Búsqueda Secuencial ƒ Búsqueda Binaria ƒ Análisis de Eficiencia ƒ Algoritmos de Inserción ƒ Algoritmos de Ordenación ƒ Métodos Directos ƒ Métodos Avanzados ƒ Medición Experimental de la Eficiencia ƒ Resumen

Resumen

ƒ Introducción ƒ Algoritmos de Búsqueda ƒ Búsqueda Secuencial ƒ Búsqueda Binaria ƒ Análisis de Eficiencia ƒ Algoritmos de Inserción ƒ Algoritmos de Ordenación ƒ Métodos Directos ƒ BubbleSort ƒ Intercambios adyacentes ƒ Inserción directa ƒ Inserciones sucesivas ƒ Selección directa ƒ Buscar el menor de una sublista

ƒ Métodos Avanzados ƒ QuickSort ƒ Más rápido ƒ Divide y Vencerás ƒ HeapSort ƒ Montículo ƒ Dos fases ƒ Medición Experimental de la Eficiencia ƒ O(n2) ƒ O(n log(n))