Índice del contenido[Esconder][Espectáculo]
La informática se trata de comprender las complejidades de los algoritmos y las estructuras de datos.
Tiene una lista de elementos que deben clasificarse, pero no tiene el tiempo ni los recursos para utilizar un algoritmo de clasificación más complejo.
La clasificación por inserción es uno de los algoritmos de clasificación más simples, pero puede ser lenta para listas grandes.
La fácil implementación y comprensión han hecho de este método uno de los favoritos entre los programadores. Es perfecto para listas pequeñas o cuando necesitas una solución rápida.
En esta publicación de blog, veremos la complejidad temporal de la clasificación por inserción. Este algoritmo se utiliza para ordenar matrices y tiene un tiempo de ejecución de O(n2). Esto significa que la complejidad del tiempo aumenta con el tamaño de la matriz.
Sin embargo, este algoritmo puede ser más rápido que otros algoritmos de clasificación, como la clasificación rápida.
¡Echemos un vistazo más de cerca a cómo funciona la clasificación por inserción!
¿Qué es el algoritmo de clasificación por inserción?
Un elemento a la vez, la ordenación por inserción genera una matriz ordenable, que con frecuencia se denomina lista.
Por ejemplo, la clasificación se aplica en programas informáticos complicados, como los compiladores, donde el orden de los tokens es importante para la interpretación del programa.
¿Cómo funciona la ordenación por inserción?
Cuando usamos la ordenación por inserción para ordenar una matriz, el algoritmo comienza encontrando el elemento más pequeño en la lista e insertándolo en la posición correcta.
Luego encuentra el siguiente elemento más pequeño y lo inserta en la posición correcta, y así sucesivamente.
El algoritmo funciona recorriendo la lista, comparando cada elemento con el anterior.
Si los elementos están en el orden incorrecto, el algoritmo los intercambia. Luego verifica si la lista está ordenada y, si lo está, el algoritmo finaliza.
En la práctica, la ordenación por inserción a menudo se implementa utilizando unas pocas líneas de código, lo que la convierte en una opción popular para ordenar arreglos pequeños. Sin embargo, se debe considerar la complejidad del tiempo al usar este algoritmo.
Ejemplo:
Aquí hay un ejemplo de cómo funciona la clasificación por inserción. Usaremos la siguiente matriz:
1, 2, 3, 4, 5, 6
El algoritmo comienza por encontrar el elemento más pequeño de la lista, que es 1. Luego lo inserta en la posición correcta, la primera posición. Luego encuentra el siguiente elemento más pequeño, que es 2. Lo inserta en la posición correcta, que es la segunda posición.
Luego encuentra el siguiente elemento más pequeño, que es 3. Lo inserta en la posición correcta, que es la tercera posición.
Luego encuentra el siguiente elemento más pequeño, que es 4. Lo inserta en la posición correcta, que es la cuarta posición, y así sucesivamente. ¡La lista ya está ordenada!
Podemos ver en el ejemplo que el algoritmo toma seis comparaciones e intercambios para ordenar la lista. Esto se debe a que se necesita n2 comparaciones e intercambios para ordenar una lista de n elementos. En este caso, n=6.
¿Cómo mejorar la complejidad del tiempo de ordenación por inserción?
Mientras que la ordenación por inserción tiene un tiempo de ejecución de O(n2), se puede mejorar mediante el uso de un mejor algoritmo de clasificación, como clasificación rápida.
Quicksort tiene un tiempo de ejecución O(n log n), que es mucho más rápido que O(n2).
Sin embargo, en algunos casos, la ordenación por inserción puede ser más rápida que la ordenación rápida.
Por ejemplo, si la lista ya está en orden, la ordenación por inserción llevará menos tiempo que la ordenación rápida.
En la práctica, la ordenación por inserción a menudo se implementa utilizando unas pocas líneas de código, lo que la convierte en una opción popular para ordenar arreglos pequeños.
Sin embargo, se debe considerar la complejidad del tiempo al usar este algoritmo.
Complejidades de tiempo
Peor caso Complejidad O(n2):
La complejidad del tiempo aumenta con el tamaño de la matriz. toma n2 comparaciones e intercambios para ordenar una lista de n elementos.
Por ejemplo, si tenemos una matriz de tamaño 1000, el algoritmo tomará 1,000,000 XNUMX XNUMX de comparaciones e intercambios para ordenar la matriz.
Complejidad del mejor caso O(n):
La complejidad del tiempo es la misma que el tamaño de la matriz de entrada. I
t toma n comparaciones e intercambios para ordenar una lista de n elementos. Por ejemplo, considere una matriz de tamaño 5. El algoritmo tomará cinco comparaciones e intercambios para ordenar la matriz.
Complejidad de caso promedio O(n2):
La complejidad del tiempo está entre las complejidades del peor y mejor caso en este caso.
toma n2 comparaciones e intercambios para ordenar una lista de n elementos.
Por lo tanto, la clasificación por inserción es un algoritmo de clasificación estable.
¿Por qué es estable la ordenación por inserción?
La ordenación por inserción es estable porque conserva el orden de los elementos iguales en la matriz de entrada.
Esto es importante para muchas aplicaciones, como la recuperación de datos o el análisis financiero. Por ejemplo, si tenemos dos listas de números y queremos compararlas, debemos asegurarnos de que se conserve el orden de los elementos.
Si las listas no están ordenadas, no las compararemos con precisión.
Deje un comentario