Algoritmo de Ordenación por Inserción Directa

Este método, también denominado método de la baraja, toma cada elemento del vector y busca su posición en orden con respecto a los elementos situados a su izquierda, que ya están ordenados entre sí.
Se toman los elementos del vector desde el segundo hasta el último y con cada uno de ellos se repiten las siguientes operaciones:
  1. Se copia el valor de la componente actual en una variable auxiliar.
  2. Desde el elemento anterior al que estamos tratando de situar y hasta el primero de los elementos del vector, desplazamos un lugar a la derecha todos los que sean mayores, para crear un hueco donde colocar el valor que estaba desordenado.
  3. Insertamos el valor que estaba almacenado en la variable auxiliar en el hueco creado en el paso anterior.
PSEUDOCÓDIGO
    MÓDULO ordenacion_insercion_directa

    DATOS
       PARÁMETROS
           Transforma V() de tipo T
           Recibe N entera
       VARIABLES
           I, J enteras
           AUX de tipo T
    INICIO
           Para I desde 2 hasta N
               AUX ← V(I)
               J ← I
               Mientras ( (V(J-1) > AUX)   y   (J > 1) ) hacer
                  V(J) ← V(J-1)
                  J ← J-1
               fin-mientras
               V(J) ← AUX
           fin-para
    FIN

CÓDIGO C
/*Ordena un vector (de menor a mayor) por el método de inserción directa*/
ordInsDirecta(int *v, int n)
{
int i, j, aux;

 for(i=1;i<n;i++)
 {
 aux=v[i];
 j=i;
  while((v[j-1]>aux) && (j>0))
  {
  v[j]=v[j-1];
  j=j-1;
  }
 v[j]=aux;
 }
}

Volver al índice

Volver a Búsqueda y Ordenación Interna



Comentarios

Entradas populares de este blog

Algoritmo de ordenación por mezcla natural

Algoritmo de ordenación por mezcla directa

Algoritmo de Ordenación por Intercambio Directo (Burbuja)