¿Sería el código a continuación el apropiado para implementar la ordenación por selección en Javascript?
let array = [24,27,43,11,32,7]; let temp; for(i = 0; i<array.length; i++){ for(j =0; j<array.length; j++){ if(array[i] < array[j]){ temp = array[i]; array[i] = array[j]; array[j] = temp; } } } console.log(array);No.
Con la ordenación por selección, construye el segmento ordenado en el lado izquierdo de la matriz en partes intercambiando el valor más bajo de la sección sin ordenar con el siguiente índice sin ordenar. Para una matriz de longitud N, solo debe haber N intercambios: su enfoque es intercambiar muchas más veces porque no se rompe con el siguiente i después de un intercambio. Tampoco está identificando el valor más bajo en la sección sin ordenar.
En el ciclo anidado (sobre j ), debe
i , no en 0 (porque la parte de la matriz de 0 a i ya debería estar ordenada)j hasta el final de la matriz; esto se puede hacer con Math.min seguido de indexOf , o guardando una variable del valor más bajo encontrado hasta el momento, así como su índice, o con muchas otras formasi , luego rompa para pasar a la siguiente iteración de i Dicho esto, si esto es algo más que un ejercicio de algoritmo, recomiendo encarecidamente utilizar el método integrado Array.prototype.sort para ordenar una matriz; es más conciso, tiene más sentido de un vistazo y es mucho más rápido.