Hoy veremos cómo implementar el algoritmo de ordenamiento por selección en C. Se trata de implementar un algoritmo de selección para ordenar un arreglo.
Este algoritmo es ligeramente superior y más rápido al ordenamiento de burbuja.
Explicación del algoritmo
En lugar de recorrer todo el arreglo e intercambiar solo si el valor actual es mayor que el siguiente, en este caso simplemente buscamos el elemento menor de la lista y lo enviamos al primer lugar, luego seguimos buscando y al menor que encontremos lo cambiamos por el segundo.
De este modo intercambiamos el elemento más pequeño con el elemento i.
Intercambio de variables
Dentro del ciclo que recorre al arreglo y lo ordena, necesitamos intercambiar variables. Existen varias formas, una de ellas es declarar una temporal, asignar a la temporal el valor de A, asignar a A el valor de B y finalmente asignar a B el valor de A.
Yo prefiero hacerlo con valores por referencia, pues el código queda más legible. El funcionamiento es el mismo, pero encerramos todo en una función.
Implementación de ordenamiento por selección
Hablar es de mal gusto; veamos el código. Simplemente recorremos el arreglo en dos ciclos, pero ahora, en el segundo, ya no recorremos desde 0 hasta n, sino que empezamos desde el valor de i + 1 pues podemos suponer que todos los valores a la izquierda ya están ordenados.
Se puede observar que la función recibe un arreglo y la longitud del mismo. Lo recorre y lo ordena usando el método de selección u ordenamiento por selección.
Poniendo todo junto
Para terminar el post veamos cómo usar esta función. Queda así:
Al ejecutarlo, la salida es la siguiente:

¿Más sobre el lenguaje C? click aquí.
muy buena explicacion, muchas gracias. <3