Se cree que el método Sort() es familiar para todos. Se usa para ordenar, es decir, números de menor a mayor (predeterminado) y de mayor a menor. El siguiente es un ejemplo detallado de la diferencia entre la aplicación de este método de clasificación en Python y Java Script.
En Python, por ejemplo, existe lst1: [1,5,8,6,2] y la lista debe ordenarse de menor a mayor.
Se puede ver que el resultado de salida es [1,2,5,6,8], que cumple con el requisito de ordenar de pequeño a grande.
Como otro ejemplo, hay una lista lst2: [3,5,88,66,100,22]
Se puede ver que el resultado de salida es [3, 5, 22, 66, 88, 100], que también cumple con el requisito de clasificar de pequeño a grande.
Además, también podemos generar la lista en orden descendente. Se puede realizar agregando el parámetro reverse = True.Para el método de parámetro específico, puede consultar el documento oficial. El valor predeterminado es ascendente y el parámetro predeterminado es Falso.
lst1 = [1,5,8,6,2]
lst2 = [3,5,88,66,100,22]
lst1.sort(reverse=True)
lst2.sort(reverse=True)
print(lst1)
print(lst2)
En Javascript, la clasificación de matrices también se puede lograr con el método sort().
Otro ejemplo, cuando hay 2 o más dígitos en la matriz, sort() tendrá un error.
Se puede ver que los resultados de salida no se muestran en orden ascendente. Esta es también la diferencia con el Python anterior. Podemos implementar orden ascendente y descendente a través del método de encapsulación fija de Javascript.
orden ascendente:
var list = [81, 132, 24, 51, 1, 2];
list.sort(function (a, b) {
return a - b;
});
console.log(list);
orden descendiente:
var list = [81, 132, 24, 51, 1, 2];
list.sort(function (a, b) {
return b - a;
});
console.log(list);
Puede verse que este autoproblema se puede resolver encapsulando una función función(a,b).
A continuación, explicaré en detalle cómo usar el método de escritura nativo para implementar la ordenación además de la implementación del método Sort().
Supongamos que hay num_list = [32,22,35,11,49,30], los números en la lista (matriz) deben ordenarse en orden ascendente de menor a mayor.
El siguiente es el proceso de clasificación lógica. La clasificación de esta matriz requiere 3 rondas de comparación, y cada ronda también tiene un número correspondiente de comparaciones. El número máximo de rondas de comparación es: longitud de matriz - 1, y el número máximo de comparaciones es: longitud de matriz - 1 - rondas de comparación. Por lo tanto, podemos lograrlo a través de bucles anidados, el bucle principal controla el número de rondas de comparación y el bucle secundario controla el número de comparaciones. Luego, en el subbucle, agregue una condición de comparación y, cuando se cumpla, realice el intercambio entre los dos valores para lograr el resultado ordenado.
Salida en orden ascendente:
num_list = [32,22,35,11,49,30]
def sort_lst(lst):
for i in range(len(lst) -1 ):
for j in range(len(lst) - 1 - i):
if lst[j] > lst[j+1]:
temp = lst[j+1]
lst[j+1] = lst[j]
lst[j] = temp
return lst
print(sort_lst(num_list))
Del mismo modo, la clasificación descendente también se puede lograr
num_list = [32,22,35,11,49,30]
def sort_lst(lst):
for i in range(len(lst) -1 ):
for j in range(len(lst) - 1 - i):
if lst[j] < lst[j+1]:
temp = lst[j+1]
lst[j+1] = lst[j]
lst[j] = temp
return lst
print(sort_lst(num_list))
La misma lógica nativa también se puede escribir en Javascript:
orden ascendente:
var array = [32,22,35,11,49,30];
function sort(array) {
for (var i = 0; i < array.length - 1; i++) {
for (var j = 0; j < array.length - 1 - i; j++) {
if (array[j] > array[j + 1]) {
var temp = array[j];
array[j] = array[j + 1];
array[j + 1] = temp;
}
}
}
return array;
}
console.log(sort(array));
orden descendiente:
var array = [32,22,35,11,49,30];
function sort(array) {
for (var i = 0; i < array.length - 1; i++) {
for (var j = 0; j < array.length - 1 - i; j++) {
if (array[j] < array[j + 1]) {
var temp = array[j];
array[j] = array[j + 1];
array[j + 1] = temp;
}
}
}
return array;
}
console.log(sort(array));