Algoritmo de Selección


El algoritmo de selección es un algoritmo simple de ordenamiento que funciona seleccionando repetidamente el elemento más pequeño de la lista no ordenada y colocándolo al principio de la lista ordenada. Esto se hace intercambiando el elemento seleccionado con el primer elemento no ordenado.

Ventajas:

  • Pocos intercambios: Beneficioso para algunos tipos de datos.
  • Rendimiento constante: Existe poca diferencia entre el peor y el mejor caso.
  • Ahorro de memoria: No requiere memoria adicional para su ejecución.

Desventajas:

  • Complejidad espacial: Puede requerir un espacio adicional dependiendo de la implementación.
  • Sin parcialidad: No mejora su rendimiento cuando los datos ya están parcialmente ordenados.
  • Rendimiento: En el peor de los casos el rendimiento es muy bajo.

Demostración del Algoritmo

Instrucciones:

1. Ingresar valores numéricos del 1 al 20.
2. Se necesitan por lo menos 3 valores para poder ser ordenados.
3. Presione "Aleatorio" para generar valores al azar.
4. Cada valor se enlista en una serie de recuadros.
5. Cuando los recuadros se colorean de rojo es porque se está recorriendo la gráfica para proceder a ordenarlos.
6. Los recuadros que se colorean de verde son los que el algoritmo selecciona para intercambiar y así ordenar.
6. Presione "Ordenar" para ejecutar el algoritmo y ordenar los valores de forma ascendente.
7. Presione "Limpiar" para borrar el gráfico.


Código:

function algoritmoSeleccion(arreglo){
    for(let i=0; i < arreglo.length; i++){
        let minimo = i;
        for(let j=i+1; j < arreglo.length; j++){
            if(arreglo[j] < arreglo[minimo]){
                minimo = j;
            }
        }
        if(i !== minimo){
            [arreglo[i],arreglo[minimo]] = [arreglo[minimo],arreglo[i]];
        }
    }
    return arreglo;
}