Está en la página 1de 11

Presentación Algoritmos

Algoritmos de ordenación

UHU Grado en Ingeniería Informática 1º

Autores:

Iván Bacho Delgado

Jesús María Gómez Salmerón

Jose Luis Álvarez Forque

Calvino García Juan Carlos

Manuel Jesús Grávalos Cano

Lavinia Felicia Fudulu

1
2
Contents
Introducción .................................................................................................................................................. 4
Ordenación por inserción ............................................................................................................................. 4
Ejemplo de Ejecución .................................................................................................................................... 4
Complejidad .................................................................................................................................................. 5
Caso Mejor ................................................................................................................................................ 5
Caso peor .................................................................................................................................................. 5
Caso Medio ............................................................................................................................................... 5
Ventajas de este algoritmo ........................................................................................................................... 5
Inserción Binaria ........................................................................................................................................... 5
Ejercicio ..................................................................................................................................................... 6
Complejidad .......................................................................................................................................... 8
Búsqueda Binaria .......................................................................................................................................... 8
Formas de implementación .......................................................................................................................... 8
Traza .......................................................................................................................................................... 8
Modo Iterativo .............................................................................................................................................. 9
Modo Recursivo ............................................................................................................................................ 9
Complejidad ................................................................................................................................................ 10
Caso Mejor .............................................................................................................................................. 10
Caso peor y medio .................................................................................................................................. 10
Ventajas ...................................................................................................................................................... 10
Desventajas ................................................................................................................................................. 11

3
Introducción

Realizaremos el estudio de algunos algoritmos de ordenación teniendo en cuenta diferentes formas de


implementación.

Ordenación por inserción

El “Ordenado por Inserción” es un algoritmo usado para ordenar una secuencia de números.

Ejemplo de Ejecución

Consiste en tomar elemento a elemento e ir insertando cada elemento


en su posición correcta de manera que se mantiene el orden de los
elementos ya ordenados.

Inicialmente se tiene un solo elemento, que obviamente es un conjunto


ordenado. Después, cuando hay k elementos ordenados de menor a
mayor, se toma el elemento k+1 y se compara con todos los elementos
ya ordenados, deteniéndose cuando se encuentra un elemento menor
(todos los elementos mayores han sido desplazados una posición a la
derecha) o cuando ya no se encuentran elementos (todos los elementos
fueron desplazados y este es el más pequeño). En este punto se inserta el
elemento k+1 debiendo desplazarse los demás elementos.

4
Complejidad

Caso Mejor
Cuando el vector esta ordenado, sólo
hace una comparación en cada caso.

Caso peor
Cuando el vector esta ordenado
inversamente, por tanto

𝑇(𝑛) = 𝑂(𝑛2 )

Caso Medio
Los elementos aparecen de forma
aleatoria, por tanto tiene complejidad

𝑇(𝑛) = 𝑂(𝑛2 )

Ventajas de este algoritmo

Algunas ventajas de este algoritmo de ordenación son:

 Fácil de implementar.
 Eficiente en pocos datos y también en datos que tienen cierta tendencia al orden.
 Estable, no cambia el orden relativo de los elementos iguales.
 Es un algoritmo en línea, puede ordenar elementos conforme los recibe.

Inserción Binaria

El algoritmo de inserción directa se mejora fácilmente al notar que la secuencia destino, donde debe
insertarse el nuevo elemento, ya esta ordenado. Por eso puede ser empleado un método más rápido
para determinar el punto de inserción. La elección obvia es una búsqueda binaria que prueba la
secuencia destino en la mitad y continua buscando hasta encontrar el punto de inserción. El algoritmo
de clasificación modificado recibe el nombre de inserción binaria.

Es una mejora del método de inserción directa, ya que hace una búsqueda binaria en lugar de una
búsqueda secuencial para insertar el elemento a la izquierda del arreglo, que se encuentra ordenado.

Su funcionamiento es muy sencillo, funciona de manera muy similar a inserción directa.

5
A diferencia de ésta, inserción binaria toma el vector ya ordenado y coge el valor medio de sus celdas. El
proceso comienza comparando el elemento central del arreglo con el valor buscado. Si ambos coinciden
finalizara la búsqueda. Si no ocurre así, el elemento buscando será mayor o menor en sentido estricto
que el central del arreglo.
Si el elemento buscado es mayor se procede a hacer búsqueda binaria en el subarray superior, si el
elemento es menor que el contenido de la casilla central, se debe cambiar el segmento a considerar al
segmento que está a la izquierda de tal sitio central.

Ejercicio

Modificar el método inserción de manera que use la búsqueda binaria para localizar dónde introducir el
siguiente elemento. Estudiar el impacto de esta mejora en la complejidad del algoritmo y decidir si es
rentable o no.

Esta modificación nos permite reducir el tiempo del algoritmo inserción aprovechando la búsqueda
binaria.

Su funcionamiento es muy sencillo, funciona de manera muy similar a inserción directa.

A diferencia de esta, inserción binaria toma la parte ya ordenada del vector y coge el valor medio de sus
celdas. La matriz queda dividida en 2 particiones, se compara el valor a insertar con el medio. Según el
resultado se colocará en una partición o en la otra y se repite el proceso hasta que se obtenga la
posición en la que irá el elemento que se pretende a ordenar.
Con unas ilustraciones se puede entender mejor por ello adjunto unas obtenidas de internet:

6
La implementación del algoritmo en c++ seria la siguiente:

7
Complejidad

En cuanto a la complejidad del algoritmo de inserción ya sabemos que es O(n^2), al igual que el
implementado por inserción binaria, O(n^2).

Por lo tanto, el coste temporal teórico no cambia demasiado. La mejor se nota para valores grandes
pero es casi imperceptible en vectores pequeños.

Como conclusión final podemos afirmar que inserción binaria es una mejora eficiente de inserción
directa que cuenta con una implementación relativamente sencilla y con unos tiempos menores a los de
inserción directa, siempre notable para arrays bastante grandes, ya que el número de comparaciones
será menor debido a que no compara con todos los elementos del vector. Es aconsejable la utilización
del algoritmo de ordenación inserción binaria.

Búsqueda Binaria

Es un algoritmo de búsqueda que encuentra la posición de un valor en un vector previamente


ordenado. Compara el valor con el elemento en el medio del array, si no son iguales, la mitad en la
cual el valor no puede estar es eliminada y la búsqueda continúa en la mitad restante hasta que el
valor se encuentre.

Formas de implementación

Este algoritmo puede ser implementado de dos formas: iterativa o recursiva. Además, existen unos
requisitos para que nuestro algoritmo funcione:

 El vector debe estar previamente ordenado


 Conocer el primer y el último elemento del vector. (pasados por parámetro)

Traza

8
Queremos localizar el número 18.

Modo Iterativo

Modo Recursivo

9
Complejidad

Caso Mejor
Se hace solo una comparación.
O(1). Línea 3

Caso peor y medio


Va depender del número de
elementos de la tabla. Vamos
dividiendo el array, por tanto
O(LogN)

Ventajas
 Es un algoritmo eficiente a la hora de buscar, O (Log(n)).
 Si tenemos un vector de un gran volumen de datos, con una sola comparación nos deshacemos
.de la mitad del mismo, así sucesivamente.
 La implementación es sencilla.

10
Desventajas
 El vector debe estar previamente ordenado.

11

También podría gustarte