Ordenar por selección en JavaScript

Muhammad Muzammil Hussain 12 octubre 2023
Ordenar por selección en JavaScript

Este artículo enseñará la clasificación de selección y cómo funciona en el código fuente de JavaScript. Veremos un ejemplo para ordenar un elemento de matriz utilizando el algoritmo de ordenación por selección en JavaScript.

Ordenar por selección en JavaScript

La clasificación por selección se considera un algoritmo de clasificación simple en los lenguajes de programación. En este algoritmo de clasificación, la lista se divide en dos partes: una parte ordenada a la izquierda y una parte no ordenada a la derecha.

La parte ordenada estará vacía en la etapa inicial ya que, en esa etapa, solo tenemos los datos sin ordenar.

En la ordenación por selección, el elemento más pequeño se selecciona de la lista y se intercambia con el elemento más a la izquierda, y ese elemento más pequeño será parte de la lista ordenada. Este proceso continúa.

Complejidad temporal del ordenamiento por selección

Este algoritmo no es factible para una gran cantidad de datos debido a sus complejidades promedio y en el peor de los casos. La complejidad temporal de este algoritmo será Ο(n^2), donde n es el número de elementos de la lista.

Algoritmo del Ordenamiento por Selección

El algoritmo de clasificación por selección se puede dividir en 5 pasos:

  • Establezca el elemento min en el índice 0.
  • Busque el elemento mínimo en la lista.
  • Intercambiar con valor en el elemento de ubicación min.
  • Incrementa el elemento min para apuntar al siguiente elemento.
  • Repita el proceso hasta que la lista esté ordenada.

En el siguiente ejemplo, usaremos JavaScript para realizar el algoritmo de clasificación por selección. Usaremos una iteración de bucle for en los elementos de la lista.

let selectionSorting = function(array) {
  for (var i = 0; i < array.length; i++) {
    // set the min variable to the current iteration of i
    var min = i;
    for (var j = i + 1; j < array.length; j++) {
      if (array[j] < array[min]) {
        min = j;
      }
    }
    var temp = array[i];  // for swapping
    array[i] = array[min];
    array[min] = temp;
  }
  return array;
};
let unsortedArray = [3, 8, 2, 10, 1, 5, 7, 4, 9, 6]

console.log('Unsorted list --> ' + unsortedArray);

let sortedArray = selectionSorting(unsortedArray)

console.log('Sorted list --> ' + sortedArray);

Producción :

"Unsorted list --> 3,8,2,10,1,5,7,4,9,6"
"Sorted list --> 1,2,3,4,5,6,7,8,9,10"

Como se muestra arriba, declaramos una función de tipo let selectionSorting() en la que tomaremos una matriz como parámetro. Dentro de esa función, hemos usado un bucle for en la matriz pasada.

Dentro del cuerpo del ciclo, obtuvimos el primer elemento ya que min usó otro ciclo para el resto de los elementos. Hemos comprobado el resto de elementos con min usando la sentencia condicional if().

Si el elemento min es mayor que el primer elemento del resto de datos, solo necesitamos actualizar la variable min. Luego, debemos cerrar el primer bucle y realizar el intercambio, y continúa el mismo proceso. Cuando se ordena la matriz, la función devolverá la matriz ordenada final.

Inicializamos la matriz no ordenada, la pasamos a la función selectionSort() como argumento y almacenamos el valor devuelto en la variable sortedArray. Finalmente, usamos el método console.log() para mostrar el resultado en los registros.

Copie y guarde el código fuente anterior y use el compilador de JavaScript para ver el resultado.

Artículo relacionado - JavaScript Sort