Selection Sort en Java: Ejemplo Paso a Paso y Código Completo
¿Qué es Selection Sort?
Selection Sort (ordenamiento por selección) es un algoritmo sencillo basado en comparaciones que selecciona repetidamente el elemento más pequeño restante y lo intercambia a su posición. Aunque no es el más rápido para grandes conjuntos de datos, su simplicidad lo hace ideal para fines educativos y arrays pequeños.
Cómo Funciona el Algoritmo
- Comenzar al principio del array.
- Encontrar el elemento más pequeño en la porción no ordenada.
- Intercambiarlo con el elemento en la posición actual.
- Mover la frontera entre la sección ordenada y no ordenada un paso a la derecha.
- Repetir hasta que todo el array esté ordenado.
Implementación en Java
A continuación se muestra un programa Java conciso que demuestra el algoritmo de selection sort en un array de enteros. El código imprime el array antes y después de ordenar, así como los pasos intermedios para ilustrar cada pasada.
package com.guru99;
public class SelectionSortAlgo {
public static void main(String[] args) {
int[] myArray = {860, 8, 200, 9};
System.out.println("------Antes de Selection Sort-----");
printArray(myArray);
selection(myArray); // Ordenar el array
System.out.println("-----Después de Selection Sort-----");
printArray(myArray);
}
public static void selection(int[] array) {
for (int i = 0; i < array.length - 1; i++) {
System.out.println("Pasada de Ordenamiento Número " + (i + 1));
int index = i;
for (int j = i + 1; j < array.length; j++) {
System.out.println("Comparando " + array[index] + " y " + array[j]);
if (array[j] < array[index]) {
System.out.println(array[index] + " es mayor que " + array[j]);
index = j;
}
}
int smallerNumber = array[index];
array[index] = array[i];
array[i] = smallerNumber;
System.out.println("Intercambiando Elementos: Nuevo Array Después del Intercambio");
printArray(array);
}
}
private static void printArray(int[] array) {
for (int i = 0; i < array.length; i++) {
System.out.print(array[i] + " ");
}
System.out.println();
}
}
Salida de Ejemplo
------Antes de Selection Sort----- 860 8 200 9 Pasada de Ordenamiento Número 1 Comparando 860 y 8 860 es mayor que 8 Comparando 8 y 200 Comparando 8 y 9 Intercambiando Elementos: Nuevo Array Después del Intercambio 8 860 200 9 Pasada de Ordenamiento Número 2 Comparando 860 y 200 860 es mayor que 200 Comparando 200 y 9 200 es mayor que 9 Intercambiando Elementos: Nuevo Array Después del Intercambio 8 9 200 860 Pasada de Ordenamiento Número 3 Comparando 200 y 860 Intercambiando Elementos: Nuevo Array Después del Intercambio 8 9 200 860 -----Después de Selection Sort----- 8 9 200 860
Notas de Rendimiento
Selection Sort realiza O(n²) comparaciones independientemente de la entrada y usa como máximo O(1) memoria adicional. Su comportamiento determinista lo hace adecuado para entornos donde la memoria es limitada.
Java
- Dominar Arrays en Java: Declaración, Inicialización y Manipulación
- Java Hola Mundo: Guía paso a paso para escribir tu primer programa Java
- Encapsulamiento en Java: Guía completa con ejemplo práctico
- Variables y tipos de datos en Java – Guía completa con ejemplos
- Método Java String length(): Cómo obtener el tamaño de un String (Ejemplo)
- Entendiendo Java String.charAt(): Sintaxis, tipo de retorno, excepciones y ejemplo práctico
- Método Java String.contains(): Cómo comprobar subcadenas – Ejemplos prácticos
- Dominando Java String.endsWith(): Cómo comprobar sufijos de cadena con ejemplos
- Lectura de archivos en Java con BufferedReader – Guía práctica con ejemplos
- Domine Bubble Sort en Java: Ejemplo Claro y Recorrido Paso a Paso
- Algoritmo Insertion Sort en Java: Ejemplo Claro y Guía Paso a Paso