0% encontró este documento útil (0 votos)
100 vistas8 páginas

Ordenamiento por Inserción: Método y Proceso

El ordenamiento por inserción ordena una lista insertando elementos uno a uno en la posición correcta de una sublista ya ordenada. Primero se considera ordenado el primer elemento, luego se inserta el segundo en su lugar correcto, y así sucesivamente hasta ordenar toda la lista. Este método requiere O(n2) operaciones y es estable pero lento para listas grandes, aunque es útil para listas inicialmente ordenadas o semiordenadas.
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PPTX, PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
100 vistas8 páginas

Ordenamiento por Inserción: Método y Proceso

El ordenamiento por inserción ordena una lista insertando elementos uno a uno en la posición correcta de una sublista ya ordenada. Primero se considera ordenado el primer elemento, luego se inserta el segundo en su lugar correcto, y así sucesivamente hasta ordenar toda la lista. Este método requiere O(n2) operaciones y es estable pero lento para listas grandes, aunque es útil para listas inicialmente ordenadas o semiordenadas.
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PPTX, PDF, TXT o lee en línea desde Scribd

Ordenamiento por Inserción

ESTRUCTURAS DE DATOS
II
Ordenamiento por Inserción: El método de ordenación por
inserción es similar al proceso típico de ordenar tarjetas de nombres
(cartas de una baraja) por orden alfabético, que consiste en insertar
un nombre en su posición correcta dentro de una lista o archivo que
ya está ordenado.
Descripción
El algoritmo correspondiente a la ordenación por inserción contempla los
siguientes pasos:
1. El primer elemento A[0] se considera ordenado; es decir, la lista inicial consta
de un elemento.
2. Se inserta A[1] en la posición correcta, delante o detrás de A[0], dependiendo
de que sea menor o mayor.
3. Por cada bucle o iteración i (desde i=1 hasta n-1) se explora la sublista A[i-1]
. A[0] buscando la posición correcta de inserción; a la vez se mueve hacia
abajo (a la derecha en la sublista) una posición todos los elementos mayores
que el elemento a insertar A[i], para dejar vacía esa posición.
4. Insertar el elemento a la posición correcta.
El método de ordenación por inserción es similar al proceso típico de ordenar tarjetas de nombres (cartas de
una baraja) por orden alfabético, que consiste en insertar un nombre en su posición correcta dentro de una lista
o archivo que ya está ordenado.
Así el proceso en el caso de la lista de enteros A = 50, 20, 40, 80, 30.

50 Se comienza por el 50

Procesar 20 20 50 Se inserta 20 en la posición 0


50 se mueve a posición 1
Se inserta 40 en la posición 1
Procesar 40 20 40 50 Se mueve 50 a posición 2

El elemento 80 está bien ordenado


Procesar 80 20 40 50 80

Procesar 30 20 50 80 Se inserta 30 en posición 1


30 40
Se desplaza a la derecha la
sublista derecha
Así, se puede escribir el siguiente pseudocódigo para ordenar una lista de n
elementos indexados desde el 1:

Sea A un arreglo de N elementos


N=Sea n el número de elementos en el arreglo
mostrar el arreglo inicial
hacer j =1 hasta n-1
k=A[j]
i=j – 1
mientras i > 0 and A[i] > k
A[i + 1]=A[i]
i =i – 1
fin mientrras
A[i + 1]=k
mostrar movimientos del arreglo
Fin hacer
Mostrar arreglo final
¿Te acuerdas de nuestra famosa lista?
4-3-5-2-1
temp toma el valor del segundo elemento, 3. La primera carta es el 4. Ahora comparamos: 3 es menor que 4.
Luego desplazamos el 4 una posición a la derecha y después copiamos el 3 en su lugar.
4 - 4 - 5 - 2 - 1
3 - 4 - 5 - 2 - 1
El siguiente elemento es 5. Comparamos con 4. Es mayor que 4, así que no ocurren intercambios.
Continuamos con el 2. Es menor que cinco: desplazamos el 5 una posición a la derecha:
3 - 4 - 5 - 5 - 1
Comparamos con 4: es menor, así que desplazamos el 4 una posición a la derecha:
3 - 4 - 4 - 5 - 1
Comparamos con 3. Desplazamos el 3 una posición a la derecha:
3 - 3 - 4 - 5 - 1
Finalmente copiamos el 2 en su posición final:
2 - 3 - 4 - 5 - 1
El último elemento a ordenar es el 1. Cinco es menor que 1, así que lo desplazamos una posición a la derecha:
2 - 3 - 4 - 5 - 5
Continuando con el procedimiento la lista va quedando así:
2 - 3 - 4 - 4 - 5
2 - 3 - 3 - 4 - 5
2 - 2 - 3 - 4 - 5
1 - 2 - 3 - 4 - 5
  22 25 06 20 42 09 03 33
                 
I:1 22 25 06 20 42 09 03 33
                 
I:2 06 22 25 20 42 09 03 33
                 
I:3 06 20 22 25 42 09 03 33
                 
I:4 06 20 22 25 42 09 03 33
                 
I:5 06 09 20 22 25 42 03 33
                 
I:6 03 06 09 20 22 25 42 33
                 
I:7 03 06 09 20 22 25 33 42
Análisis del Costo Computacional
Estabilidad: Este algoritmo nunca intercambia registros con claves iguales. Por lo
tanto es estable.
Requerimientos de Memoria: Una variable adicional para realizar los intercambios.
Tiempo de Ejecución: Para una lista de n elementos el ciclo externo se ejecuta n-
1 veces. El ciclo interno se ejecuta como máximo una vez en la primera iteración, 2
veces en la segunda, 3 veces en la tercera, etc. Esto produce una complejidad O(n 2).
Ventajas:
 Fácil implementación.
 Requerimientos mínimos de memoria.
Desventajas:
 Lento.
 Realiza numerosas comparaciones.
Este también es un algoritmo lento, pero puede ser de utilidad para listas que están
ordenadas o semiordenadas, porque en ese caso realiza muy pocos
desplazamientos.

También podría gustarte