En otro post expliqué cómo podemos ordenar y hacer búsquedas en un array mediante el método de la burbuja, pero este no es el único algoritmo de ordenación que podemos emplear en programación. Esta vez aprenderemos a usar el método de selección directa. Este método es mas sencillo que el anterior, solo tenemos que tomar el elemento n del array, y recorrer uno a uno todos los elementos del array que tiene n a su derecha, incluido él mismo. Si encontramos un elemento a la derecha de n que tiene el menor valor de todos los recorridos (si quisiéramos un orden ascendente) lo intercambiamos, desplazando ese valor menor a la posición de n, y n a la posición de ese valor menor.
A continuación se repite todo el proceso tantas veces como longitud tiene el array, y de este modo obtendríamos un array ordenado. Vemos un ejemplo
#include <stdio.h> int main(void) { /* Declaramos un array de enteros. */ int vector[4] = { 3, 2, 4, 1 }; /* Declaramos otras variables que * nos serviran para iterar. */ int i, j, k, aux; /* Ordenamos el array de enteros. */ for (k = 0; k <= 2; k++) { i = k; aux = vector[k]; for (j = k + 1; j <= 3; j++) { if (vector[j] < aux) { i = j; aux = vector[i]; } } vector[i] = vector[k]; vector[k] = aux; } /* Imprimimos el array de enteros. */ for (i = 0; i <= 3; i++) { printf("%d ", vector[i]); } }
Este ejemplo está hecho en lenguaje C, pero puedes probar a realizarlo en cualquier lenguaje de programación tradicional.
La variable i no es totalmente prescindible?