Algoritmo de Ordenación por Inserción Directa
Se toman los elementos del vector desde el segundo hasta el último y con cada uno de ellos se repiten las siguientes operaciones:
- Se copia el valor de la componente actual en una variable auxiliar.
- 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.
- Insertamos el valor que estaba almacenado en la variable auxiliar en el hueco creado en el paso anterior.
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;
}
}
Comentarios
Publicar un comentario