Sobre la diferencia entre la aplicación del método Sort() en Python y Javascript

   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.

inserte la descripción de la imagen aquí



   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.

inserte la descripción de la imagen aquí



   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.

inserte la descripción de la imagen aquí



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)


inserte la descripción de la imagen aquí



   En Javascript, la clasificación de matrices también se puede lograr con el método sort().

inserte la descripción de la imagen aquí



   Otro ejemplo, cuando hay 2 o más dígitos en la matriz, sort() tendrá un error.

inserte la descripción de la imagen aquí



   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:



inserte la descripción de la imagen aquí



var list = [81, 132, 24, 51, 1, 2];
      list.sort(function (a, b) {
    
    
        return a - b;
      });
      console.log(list);


   orden descendiente:



inserte la descripción de la imagen aquí



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.



inserte la descripción de la imagen aquí



   Salida en orden ascendente:



inserte la descripción de la imagen aquí



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



inserte la descripción de la imagen aquí



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:



inserte la descripción de la imagen aquí



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:



inserte la descripción de la imagen aquí



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));
   

Supongo que te gusta

Origin blog.csdn.net/weixin_48591974/article/details/130094283
Recomendado
Clasificación