Shellsort fue desarrollado en 1.959 por Donald L. Shell. Es similar al algoritmo de inserción pero mucho más rápido, utiliza un espacio de trabajo grande (distancia entre elementos que es parametrizable) y su eficiencia depende de la secuencia de incrementos. Es uno de los más estudiados pero está en la parte trasera de los más rapidos.
Rendimiento – Complejidad | |||
Mejor caso Ω |
Peor caso O |
Media Θ |
Espacio |
(n log n) | (n log2 n) | (n log2 n) | O(1) |
Cómo actúa:
Primero se divide el vector en partes iguales, procesa los elementos en saltos de la mitad del intervalo tratado, esto permite que los elementos se muevan rápidamente hacia sus posiciones finales, facilitando la clasificación cuando se utilizan incrementos más pequeños. Cuando el incremento alcanza 1, debe alcanzarlo, la clasificación es una clasificación de inserción simple. Tiene la ventaja del bajo consumo de memoria al no utilizar recursividad y usar únicamente el espacio del vector tratado.
Rendimiento.
Estadística individual realizada con el mismo equipo y condiciones del resumen de estadísticas de ordenación.
Secuencia de incrementos.
Como dije anteriormente, la eficiencia de Shell depende de la secuencia de incrementos y se han propuesto muchos desde su publicación: