Consiste en recorrer el vector apartir de la posición 2 hasta la n, tomando el elemento de dicha posición y comparandolo con los números de la izquierda en busca de algún elemento mayor que él, en caso de encontarlo cambia al número mayor a la posición del número menor (manteniendo esté último en memoria) y continua buscando números mayores hasta llegar a la posición 1, finalmente coloca dicho número menor en la casilla correspondiente.
| INICIO | |
| int i,x,j,A[n]; //donde n es entero | |
| for(i=1; i < n; i++) { | |
| x=A[ i ]; | |
| j= i-1; | |
| while(x < A( j ) && j >=0) { | |
| A[j+1]=A[ j ]; | |
| j= j-1; | |
|
} |
|
| A[j+1]= x; | |
| } | |
| FIN |
A continuación se presenta una corrida de escritorio para la ordenación
de un vector de 8 posiciones con los siguientes elementos y orden:
44, 55, 12, 42, 94, 18, 6, 67.
| Indica el número contenido en la casilla que se va a ordenar | |
| Indica que el dato se esta reacomodando |
| VARIABLES | VECTOR | ||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Posición | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | |||||||
| Rec | i | j | x | A[j] | A[j+1] | A[i] | Inicio | 44 | 55 | 12 | 42 | 94 | 18 | 06 | 67 |
| 1º | 1 | 0 | 55 | 44 | 55 | 55 | Cambio | 44 | 55 | 12 | 42 | 94 | 18 | 06 | 67 |
| 2º | 2 | 1 | 12 | 55 | 55 | - | Cambio | 44 | 55 | 55 | 42 | 94 | 18 | 06 | 67 |
| 2 | 0 | 12 | 44 | 44 | - | Cambio | 44 | 44 | 55 | 42 | 94 | 18 | 06 | 67 | |
| 2 | -1 | 12 | - | 12 | - | Cambio | 12 | 44 | 55 | 42 | 94 | 18 | 06 | 67 | |
| 3º | 3 | 2 | 42 | 55 | 55 | 42 | Cambio | 12 | 44 | 55 | 55 | 94 | 18 | 06 | 67 |
| 3 | 1 | 42 | 44 | 44 | - | Cambio | 12 | 44 | 44 | 55 | 94 | 18 | 06 | 67 | |
| 3 | 0 | 42 | - | 42 | - | Cambio | 12 | 42 | 44 | 55 | 94 | 18 | 06 | 67 | |
| 4º | 4 | 3 | 94 | - | 94 | - | Cambio | 12 | 42 | 44 | 55 | 94 | 18 | 06 | 67 |
| 5º | 5 | 4 | 18 | 94 | 94 | 18 | Cambio | 12 | 42 | 44 | 55 | 94 | 94 | 06 | 67 |
| 5 | 3 | 18 | 55 | 55 | - | Cambio | 12 | 42 | 44 | 55 | 55 | 94 | 06 | 67 | |
| 5 | 2 | 18 | 44 | 44 | - | Cambio | 12 | 42 | 44 | 44 | 55 | 94 | 06 | 67 | |
| 5 | 1 | 18 | 42 | 42 | - | Cambio | 12 | 42 | 42 | 44 | 55 | 94 | 06 | 67 | |
| 5 | 0 | 18 | - | 18 | - | Cambio | 12 | 18 | 42 | 44 | 55 | 94 | 06 | 67 | |
| 6º | 6 | 5 | 6 | 94 | 94 | 6 | Cambio | 12 | 18 | 42 | 44 | 55 | 94 | 94 | 67 |
| 6 | 4 | 6 | 55 | 55 | - | Cambio | 12 | 18 | 42 | 44 | 55 | 55 | 94 | 67 | |
| 6 | 3 | 6 | 44 | 44 | - | Cambio | 12 | 18 | 42 | 44 | 44 | 55 | 94 | 67 | |
| 6 | 2 | 6 | 42 | 42 | - | Cambio | 12 | 18 | 42 | 42 | 44 | 55 | 94 | 67 | |
| 6 | 1 | 6 | 18 | 18 | - | Cambio | 12 | 18 | 18 | 42 | 44 | 55 | 94 | 67 | |
| 6 | 0 | 6 | 12 | 12 | - | Cambio | 12 | 12 | 18 | 42 | 44 | 55 | 94 | 67 | |
| 6 | -1 | 6 | - | 06 | - | Cambio | 06 | 12 | 18 | 42 | 44 | 55 | 94 | 67 | |
| 7º | 7 | 6 | 67 | 94 | 94 | 67 | Cambio | 06 | 12 | 18 | 42 | 44 | 55 | 94 | 94 |
| 7 | 5 | 67 | - | 67 | - | Cambio | 06 | 12 | 18 | 42 | 44 | 55 | 67 | 94 | |
Nótese que el vector ya esta ordenado