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