Ordenación por shell
El método de shell es una versión mejorada del método de inserción directa recibe ese nombre en honor a su autor Donald L. Shell quien lo propuso en 1959.Este método también se conoce con el nombre de inserción con incrementos decrecientes.
En el método de ordenación Shell propone que las comparaciones entre elementos se efectúencon saltos de mayor tamaño pero con incrementos se efectúen con saltos de mayor tamaño pero con incrementos decrecientes, así los elementos quedarán ordenados en el arreglo.Ejemplo:
Se desean ordenarse las siguientes claves del arreglo A: 15, 67, 08, 16, 44, 27, 12, 35, 56, 21, 13, 28, 60, 36, 07, 10
Primera PasadaLos elementos se dividen en 8 grupos:
A: 15, 67, 08, 16, 44, 27, 12, 35 | 56, 21, 13, 28, 60, 36, 07, 10
La ordenación produce:
A: 15, 21, 08, 16, 44,27, 07, 10, 56, 67, 13, 28, 60, 36, 12, 35
Segunda Pasada
Se dividen los elementos en 4 grupos:
A: 15, 21, 08, 16 | 44, 27, 07, 10 | 56, 67, 13, 28 | 60,36, 12, 35
La ordenación produce: A: 15, 21, 07, 10, 44, 27, 08, 16, 56, 36, 12, 28, 60, 67, 13, 35
Tercera Pasada
Se divide los elementos2 grupos
A: 15, 21 | 07, 10 | 44, 27 | 08, 16 | 56, 36 | 12, 28 | 60, 67 | 13, 35
La ordenación produce:
A = 07, 10, 08, 16, 12, 21, 13,27, 15, 28, 44, 35, 56, 36, 60, 67
Cuarta Pasada
Divida los elementos en un solo grupo.
La ordenación produce:
A: 07,08, 10, 12, 13, 15, 16, 21, 27, 28, 35, 36, 44, 56, 60, 67
//Código:
# include
# include
void main (void)
{
int a[15];
int n, inc, i, j, tmp;
cout n;
for (i=1; i
Regístrate para leer el documento completo.