Algoritmo de Ordenación por Inserción Binaria

Es una variante del método de inserción directa, en la que se sustituye la búsqueda secuencial por una búsqueda binaria (que se puede aplicar dado que la zona de búsqueda contiene elementos ordenados).
Para cada elemento ai comprendido entre las posiciones 2 y N:
  1. Se aplica una búsqueda binaria entre las posiciones [1, I-1], para determinar la posición que debería ocupar el elemento a ordenar, respecto a los de dicho intervalo.
  2. Todos los elementos del intervalo anterior que sean mayores que el que se pretende colocar, se desplazarán una posición a la derecha.
  3. Se coloca el valor en su nueva posición, ya en orden.
PSEUDOCÓDIGO
    MÓDULO ordenacion_insercion_binaria

    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)
               IZQ ← 1
               DER ← I-1
               Mientras ( IZQ ≤ DER ) hacer
                   CEN ← (IZQ+DER)\ 2      ** división entera
                   Si ( V(CEN) ≤ AUX ) entonces
                        IZQ ← CEN+1
                   sino
                        DER ← CEN-1
                   fin-si
               fin-mientras
               J ← I
               Mientras (J > IZQ) hacer
                   V(J) ← V(J-1)
                   J ← J-1
               fin-mientras
               V(IZQ) ← AUX
           fin-para
    FIN

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

	for(i=1;i<n;i++)
	{
	aux=v[i];
	izq=0;
	der=i-1;
		while(izq<=der)
		{
		cen=(izq+der)/2;
		
			if(v[cen]>aux)
			{
			der=cen-1;
			}
			else
			{
			izq=cen+1;
			}		
		}

	j=i;

		while(j>izq)
		{
		v[j]=v[j-1];
		j=j-1;
		}

	v[izq]=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)