Está en la página 1de 15

PROGRAMACIÓN I

Ordenación y búsqueda

Clara Benac Earle


Búsqueda con elementos
desordeados
Búsqueda con elementos
desordenados

Ventajas
– Es fácil añadir nuevos elementos porque da igual
donde se pongan

Desventajas
– La búsqueda es poco eficiente
Búsqueda con elementos
ordenados
Búsqueda con elementos
ordenados

Ventajas
– Se puede buscar de manera eficiente

Desventajas
– Añadir elementos nuevos es costoso porque hay
que mantener el orden
¿Qué estrategia es mejor?
Depende:
– Si la colección de elementos no varía o varía muy
poco y hay que hacer muchas búsquedas,
entonces es mejor ordenar primero y buscar
después
– En otros casos, puede ser más eficiente hacer la
búsqueda en una colección no ordenada
Ejemplo
El algoritmo de PageRank que usa Google
ordena cada página web en función de cuántas
páginas enlazan (llevan) a esa página y
presenta los resultados de manera ordenada
Ejemplo de algorimo de ordenación:
inserción

6 5 3 8 2

5 6 3 8 2
Ejemplo de algorimo de ordenación:
inserción

6 5 3 8 2

5 6 3 8 2

3 5 6 8 2
Ejemplo de algorimo de ordenación:
inserción
6 5 3 8 2

5 6 3 8 2

3 5 6 8 2

2 3 5 6 8
Pseudocódigo del algoritmo de
inserción

Paso 1: dado un array

Paso 2: desde el primer al último elemento

Paso 3: para cada elemento i, mientras queden
elementos en el array y el valor en i sea menor
que los elementos a su izquierda, se desplaza
cada uno de esos elementos una posición a la
derecha
Ejemplos de algoritmos de
ordenación

Comparativa de algoritmos de ordenación
– https://www.toptal.com/developers/sorting-algorithms

Algoritmo de inserción

Algoritmo de la burbuja

Merge sort
BÚSQUEDA
Algoritmos de búsqueda

Lo que hemos visto hasta ahora ha sido la
búsqueda lineal (recorrer un array elemento a
elemento hasta encontrar el elemento n que
buscamos)

Hay otra maneras más eficientes de buscar un
elemento en una colección si la colección está
ordenada. Vamos a ver la búsqueda binaria
Algoritmo para la búsqueda binaria
Se trata de saber si x está en un array ordenado
Supongamos que x es 6

1 2 4 5 6 8 9
Algoritmo:
Calcular el índice del elemento en la mitad del array,
Diviendo por length/2
Si x es menor que el elemento en la mitad,
entonces sólo se busca en la mitad izquierda del array
En otro caso, se sigue buscando en mitad derecha del array
Este proceso se repite hasta que, o bien se encuentra x o
bien sólo queda un elemento y no es x

También podría gustarte