Ordenamiento por inserción

El ordenamiento por inserción (insertion sort en inglés) es una manera muy natural de ordenar para un ser humano y puede usarse fácilmente para ordenar un mazo de cartas numeradas en forma arbitraria.

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

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).

[1]​ En el mejor de los casos, el arreglo está inicialmente en orden, el algoritmo solo hace una pasada y entonces la complejidad es

[2]​ En el peor caso, con el arreglo ordenado con el criterio contrario, se obtiene una complejidad temporal cuadrática del orden de

Introducción al análisis de algoritmos.

Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest, Clifford Stein (2022).

Introduction to Algorithms Fourth Edition.

Ejemplo de ordenamiento por inserción ordenando una lista de números aleatorios.