Selección, burbujeo e inserción 3 resumen de clasificación simple
Seleccionar ordenar
Operación: Comenzando desde la posición 0, compare gradualmente con 1, 2, 3 ... n-1, y reemplace el número más pequeño a la posición 0; comenzando desde la primera posición, compare gradualmente con 2, 3, 4 ... n- 1 Para comparar, reemplace el segundo número más pequeño por el primer lugar y así sucesivamente.
Características: Al atravesar los datos no fijos, encuentre el valor más pequeño y fíjelo en la posición correspondiente en orden ascendente. Repita esta operación hasta que la longitud de los datos no fijos sea 0.
Complejidad de tiempo: O (n²)
Código:
let length = 5;
let arr = new Array(length);
for(let i = 0;i<length;i++){
arr[i] = length - i;
}
let num;
for(let i = 0;i<length-1;i++){
for(let j = i+1;j<length;j++){
if(arr[i] > arr[j]){
num = arr[i];
arr[i] = arr[j];
arr[j] = num;
}
}
}
Ordenamiento de burbuja
Operación: Compare el lugar 0 con el primer lugar, organice los valores numéricos de pequeño a grande, luego compare el primer lugar con el segundo lugar, y también organice los valores numéricos de pequeño a grande ... hasta que la n -2 ° lugar y el primer lugar Comparando n-1 dígitos, el número más grande se reemplaza con n-1 dígitos; comparando el 0 ° dígito con el primer dígito, ordenando los valores de pequeño a grande y luego comparando el primer dígito con el segundo dígito y el mismo valor Organizar de menor a mayor ... hasta que el n-3º lugar se compare con el n-2º lugar, el segundo número más grande se reemplaza por el n-2º lugar, y así sucesivamente.
Característica: Al comparar los datos sin fijar en pares, fije el valor máximo de los datos sin fijar al final de los datos sin fijar y repita esta operación hasta que la longitud de los datos sin fijar sea 0.
Complejidad de tiempo: O (n²)
Código:
let length = 5;
let arr = new Array(length);
for(let i = 0;i<length;i++){
arr[i] = length - i;
}
let num;
for(let i = 0;i<length-1;i++){
for(let j = 0;j<length-i;j++){
if(arr[j] > arr[j + 1]){
num = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = num;
}
}
}
Optimiza el código:
let length = 5;
let arr = new Array(length);
for(let i = 0;i<length;i++){
arr[i] = length - i;
}
let num,flag;
for(let i = 0;i<length-1;i++){
flag = false;
for(let j = 0;j<length-i;j++){
if(arr[j] > arr[j + 1]){
num = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = num;
flag = true;
}
}
if(!flag){
break;
}
}
Tipo de inserción
Operación: comenzando desde el primer dígito, compare el primer dígito con el dígito 0, y los valores se ordenan en orden ascendente; luego, comenzando desde el segundo dígito, compare el segundo dígito con el primer dígito y compare el primer dígito con el dígito 0, el valor numérico se organiza en orden ascendente; y así sucesivamente, comenzando desde la posición n, la posición n se compara con la posición n-1 ... hasta la primera y la posición 0, los valores numéricos están dispuestos en orden ascendente.
Características: Iniciar el recorrido desde la 1ª posición a la n-1ª posición, asegurándose de que después de cada recorrido, todos los datos desde la posición 0 hasta la posición actual del recorrido estén dispuestos en orden ascendente.
Complejidad de tiempo: O (n²)
Código:
let length = 5;
let arr = new Array(length);
for(let i = 0;i<length;i++){
arr[i] = length - i;
}
let num;
for(let i = 0;i<length-1;i++){
for(let j = i+1;j>0;j--){
if(arr[j - 1] > arr[j]){
num = arr[j];
arr[j] = arr[j - 1];
arr[j - 1] = num;
}else{
break;
}
}
}