Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Algoritmos de ordenación
Autores:
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
El “Ordenado por Inserción” es un algoritmo usado para ordenar una secuencia de números.
Ejemplo de Ejecución
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 )
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.
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.
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
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:
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
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