algoritmo de elección JavaScript clasificación

Proceso:
la posición de partida del primer ciclo se define como la posición por defecto mínimo de nuevo
a partir de la siguiente posición de la posición de inicio, ciclo de ejecución
si el valor es menor que el valor en la posición en la posición de almacenamiento del índice
en un valor de índice almacenado en la posición de
bucle final, comparando el índice almacenado, si el índice es la posición de partida
y si no, el valor de cambio de las dos posiciones en
el ciclo mínimo estará presente, se coloca en la posición de inicio del ciclo de
la realización de múltiples ciclos para completar la clasificación de
procedimiento:

var arr=[....]
// 外层循环,实现排序循环次数,次数是单元个数 -1
for(j=0;j<arr.length-1;j++){
// 先默认起始位置就是最小值位置,存储起始位置的索引,也就是 j
      // 之前的起始位置,不参与下一次循环
var min=j;
// 默认的最小值位置是当前循环的起始位置,是j
// 比较,要从下一个位置开始,内层循环起始,是比较的起始位置+1开始循环 
for(i=j;i<arr.length;i++){
// 如果有单元的数值,小于存储的索引对应的数值
if(arr[min]>arr[i]){
//变量中,存储当前较小值的索引下标
// 不是做数据交换,是存储这个数值位置的索引下标
min=i
}
}
// 内层循环执行完毕,存储的索引下标如果不是起始的索引j
// 就交换 min中存储的索引下标对应的数值 和 j索引下标应的数值
if(min!=j){
var a=0;
a=arr[i];
arr[i]=arr[min];
arr[min]=a;
}
}
console.log(arr);

Núcleo:
encontrar el índice mínimo, la posición de inicio del intercambio de datos
para ir primer índice, el intercambio de datos de
optimización:
1. antes de que el valor de comparación no participa en la siguiente comparación
unidades 2.n, n-1 veces más largo que comparativo

Ordenación por selección:
Si el orden de aparición del problema, tiene que realizar el índice de asignación de la operación
como el ciclo se ha completado, se lleva a cabo el juicio, para hacer un intercambio de datos

Publicado 21 artículos originales · ganado elogios 3 · Vistas 324

Supongo que te gusta

Origin blog.csdn.net/qq_44531034/article/details/104979596
Recomendado
Clasificación