Selection Sort

¿Qué es Selection Sort?

Selection Sort es un algoritmo de ordenamiento que divide el arreglo en dos partes: una parte ordenada que se construye gradualmente y otra no ordenada. En cada iteración, encuentra el elemento más pequeño de la parte no ordenada y lo coloca al inicio de la parte ordenada.

El Código

                
function selectionSort(arr) {
  for (let i = 0; i < arr.length; i++) {
    let min = i;
    for (let j = i + 1; j < arr.length; j++) {
      if (arr[j] < arr[min]) {
        min = j;
      }
    }
    if (i !== min) {
      let temp = arr[i];
      arr[i] = arr[min];
      arr[min] = temp;
    }
  }
  return arr;
}

// Ejemplo de uso
const array = [64, 34, 25, 12, 22, 11, 90];
console.log("Array ordenado:", selectionSort(array)); // [11, 12, 22, 25, 34, 64, 90]
                
            
Ver en repositorio: GitHub

Puntos Clave del Algoritmo

  • Entrada: Un arreglo desordenado (arr).
  • Salida: El arreglo ordenado de menor a mayor.
  • Método:
    • Selecciona el elemento más pequeño de la parte no ordenada del arreglo.
    • Intercambia el elemento seleccionado con el primero de la parte no ordenada.
    • Repite el proceso para el resto del arreglo.
  • Complejidad:
    • Peor caso: O(n²), ya que recorre el arreglo completo para cada elemento.
    • Mejor caso: O(n²), incluso si el arreglo ya está ordenado.
  • Ventajas: Es fácil de implementar y no requiere espacio adicional.
  • Desventajas: Es ineficiente para arreglos grandes en comparación con otros algoritmos como Merge Sort o Quick Sort.

Ejemplo de Ejecución

Arreglo inicial: [64, 34, 25, 12, 22, 11, 90]

Proceso de ordenamiento:

  1. Encuentra el elemento más pequeño 11 e intercambia con el primer elemento. Resultado: [11, 34, 25, 12, 22, 64, 90]
  2. Encuentra el siguiente más pequeño 12 e intercambia con el segundo elemento. Resultado: [11, 12, 25, 34, 22, 64, 90]
  3. Encuentra el siguiente más pequeño 22 e intercambia con el tercer elemento. Resultado: [11, 12, 22, 34, 25, 64, 90]
  4. Encuentra el siguiente más pequeño 25 e intercambia con el cuarto elemento. Resultado: [11, 12, 22, 25, 34, 64, 90]
  5. Ya no hay más intercambios necesarios. Resultado final: [11, 12, 22, 25, 34, 64, 90]

Arreglo final ordenado: [11, 12, 22, 25, 34, 64, 90]

Información Adicional

Aunque el algoritmo Selection Sort es fácil de entender y adecuado para datos pequeños, no es eficiente para grandes volúmenes de datos debido a su complejidad de tiempo cuadrática. Es ideal para aplicaciones donde la simplicidad es más importante que la velocidad.

Whatsapp Mentores Tech