miércoles, 1 de diciembre de 2010

SELECCIÓN DIRECTA

El siguiente algoritmo define el metodo de selección directa. Su programación es fácil y comprensible, aunque no es deseable para tamaños grandes de problema.
La idea básica del algoritmo consiste en buscar el menor/mayor elemento del vector y colocarlo en la primera posición del vector. Después se busca el segundo elemento menor/mayor y se coloca en la segunda posición, y así sucesivamente hasta que todos los elementos están ordenados.


void seleccion_directa(int n)

{

  int min,k;

  int cambio;

  for(int i = 0; i < n; i++)

   {

     min = v[i];

     k = 0;

     cambio = 0;

     for(int j = i+1; j < n; j++){

          if (v[j] < min){

              min = v[j];

              k = j;

             cambio = 1;

           }

     }

     if (cambio){

              v[k] = v[i];

              v[i] = min;

     }

  }

}

 


  • Si deseamos ordenar de mayor a menor tendríamos que modificar la siguiente línea:



              if (v[j] > min)


No hay comentarios:

Publicar un comentario