Algoritmos de ordenación - método de selección directa

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.

2 opiniones en “Algoritmos de ordenación - método de selección directa”

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.