Es un método diseñado para ordenar arreglos que posean una gran cantidad de datos, ShellSort trabaja mediante una serie de iteraciones comparando elementos que se encuentran separados por un espacio de varias posiciones. Cada espacio va disminuyendo a medida  que se realizan  las iteraciones.

Ejemplo:

Tenemos un arreglo con los siguientes elementos

23 60 55 34 6 99 71 33

supongamos que los incrementos soon (5,3,1)

incremento = 5:

(x[0], x[5])
(x[1], x[6])
(x[2], x[7])
(x[3])
(x[4])

incremento = 3:

(x[0], x[3], x[6])
(x[1], x[4], x[7])
(x[2], x[5])

incremento = 1:

(x[0], x[1], x[2], x[3], x[4], x[5], x[6], x[7])

Ahora ordenaremos con ShellSort

arreglo original 23 60 55 34 6 99 71 33
paso 1
salto = 5
23 60 55 34 6 99 71 33
nuevo orden 23 60 33 34 6 99 71 55
paso 2
salto = 3
23 60 33 34 6 99 71 55
nuevo orden 23 6 33 34 55 99 71 60
paso 3
salto = 1
23 6 33 34 55 99 71 60
arreglo ordenado 6 23 33 34 55 60 71 99