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