Anterior | Home | Siguiente |
El método de inserción simple actúa sobre un arreglo que ya posee parte de sus elementos ordenados, insertando un elemento K en la posición correcta par para mantener el orden previo.
Para entender esto supongamos el siguiente arreglo:
Arreglo original: | 2 | 4 | 5 | 5 | 18 | 21 | 7 | 9 | 20 | obsérvese que desde el 1er hasta el 4º elemento, el arreglo ya está ordenado, por lo cual habría que ordenar desde el elemento 5º hasta el 8º |
paso 1: | 2 | 4 | 5 | 5 | 7 | 18 | 21 | 9 | 20 | para mantener el orden se toma el 7 colocándolo en la posición correcta para mantener el orden, y se desplaza el resto de los elementos hacia la derecha |
paso 2: | 2 | 4 | 5 | 5 | 7 | 9 | 18 | 21 | 20 | para mantener el orden se toma el 9 colocándolo en la posición correcta para mantener el orden, y se desplaza el resto de los elementos hacia la derecha |
paso 3: | 2 | 4 | 5 | 5 | 7 | 9 | 18 | 20 | 21 | para mantener el orden se toma el 20 colocándolo en la posición correcta para mantener el orden, y se desplaza el resto de los elementos hacia la derecha |
Para aplicar el método de inserción a un arreglo que no esta ordenado, se puede suponer que el intervalo ordenado del arreglo tine un solo elemento, que correspondería al primer elemento. Luego se toma el segundo elemento, y se inserta dentro de este primer subarreglo en la posición correcta para mantener el orden. De ahí en adelante se hace lo mismo con el resto de los elementos tal como se vió en el ejemplo.
Un ejemplo de inserción simple se puede apreciar en el siguiente fragmento de código en C:
. . . int X[n]; /* será el número de elementos del arreglo */ int i,j,K /* K será el elemento que se inserte para mantener el orden */ . . . for (j=1,j<n;j++) { K=X[j]; /* se toma K como el elemento j-esimo */ for(i=j-1;i>=0&&K<X[i];i--) { X[i+1]=X[i]; /* se sube una posición todos los elementos mayores que K, y se hace burbujear K */ X[i]=K; } } . . .
Ejemplo completo en C: inserci1.zip
Anterior | Home | Siguiente |
© 2000 Made in Bufoland