El algoritmo de ordenación por selección es otro método fundamental para organizar elementos en un arreglo. Aunque no es la opción más eficiente en términos de tiempo, el ordenamiento por selección es fácil de entender y es útil para comprender los conceptos de ordenamiento. En este artículo, exploraremos a fondo el algoritmo de ordenación por selección en Java, proporcionando un ejemplo de programación acompañado de comentarios explicativos.
Introdución
Ejemplo de Programacion
public class SelectionSort {
public static void main(String[] args) {
int[] arreglo = {5, 2, 9, 1, 5, 6};
System.out.println("Arreglo original: " + Arrays.toString(arreglo));
selectionSort(arreglo);
System.out.println("Arreglo ordenado: " + Arrays.toString(arreglo));
}
public static void selectionSort(int[] arreglo) {
int n = arreglo.length;
for (int i = 0; i < n - 1; i++) {
int indiceMinimo = i;
for (int j = i + 1; j < n; j++) {
if (arreglo[j] < arreglo[indiceMinimo]) {
indiceMinimo = j;
}
}
// Intercambiar arreglo[i] y arreglo[indiceMinimo]
int temp = arreglo[i];
arreglo[i] = arreglo[indiceMinimo];
arreglo[indiceMinimo] = temp;
}
}
}
Comentarios Explicativos
- arreglo es el arreglo que queremos ordenar.
- selectionSort es la función que implementa el algoritmo de ordenación por selección.
- El bucle for exterior itera a través del arreglo, considerando una parte ordenada y una parte no ordenada.
- El bucle for interior busca el índice del elemento mínimo en la parte no ordenada del arreglo.
- Si se encuentra un elemento más pequeño, se actualiza el indiceMinimo.
- Después de encontrar el índice mínimo, se intercambia con el elemento en la posición actual del bucle exterior.
- Al finalizar la ejecución del algoritmo, el arreglo estará ordenado en orden ascendente.
Conclusion
El algoritmo de ordenación por selección es un método sencillo pero valioso para comprender cómo los algoritmos de ordenación operan. Aunque puede no ser el más rápido para arreglos grandes, su enfoque en la búsqueda del elemento mínimo y su intercambio gradual lo hacen efectivo para pequeños conjuntos de datos. Al explorar y experimentar con este algoritmo, los desarrolladores pueden obtener una base sólida para comprender otros algoritmos de ordenación más complejos y su aplicación en problemas del mundo real.