Algoritmo de Ordenación por Selección Directa

Este método realiza sucesivas búsquedas del menor de los elementos que quedan por ordenar, colocándolo en su posición definitiva dentro de la parte del vector ordenado. Tras cada iteración I del algoritmo, los elementos situados a la izquierda del I-ésimo están ordenados.
Por tanto y para cada iteración I del algoritmo (de un total de N-1) los pasos a dar son:
  1. Se selecciona la componente de menor valor, de entre las existentes entre la I-ésima posición y la última.
  2. Se intercambia el valor seleccionado con el almacenado en la posición I.
PSEUDOCÓDIGO
    MÓDULO ordenacion_seleccion_directa

    DATOS
       PARÁMETROS
           Transforma V() de tipo T
           Recibe N entera
       VARIABLES
           I, J, K enteras
           AUX de tipo T
    INICIO
           Para I desde 1 hasta N-1
               K ← I
               AUX ← V(I)
               Para J desde I+1 hasta N
                   Si ( V(J) < AUX ) entonces
                        K ← J
                        AUX ← V(J)
                   fin-si
               fin-para
               V(K) ← V(I)
               V(I) ← AUX
           fin-para
    FIN

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

	for(i=0;i<n;i++)
	{
	k=i;	
	aux=v[i];
	
		for(j=i+1;j<n;j++)
		{
			if(v[j]<aux)
			{
			k=j;
			aux=v[j];
			}
		}
	v[k]=v[i];
	v[i]=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)