¿Cómo se ordenan 10 números en orden creciente?

Por solo 10 números, especialmente si se calculan a mano, entonces sugiero ordenar por selección.

  1. Buscar en la lista de entrada para el número más pequeño
  2. Agregue ese número a la lista de salida
  3. Eliminar ese número de la lista de entrada
  4. Repita hasta que la lista de entrada esté vacía

Como caso general, NO sugiero este algoritmo, ya que es enormemente ineficiente para escalar, ya que requiere una cantidad de tiempo al cuadrado en relación con el tamaño de su lista. Si estaba considerando procesar una lista de 1000 elementos, entonces consideraría usar Heapsort, Quicksort o Mergesort: algoritmo de clasificación – Wikipedia

Sin embargo, una lista de 10 elementos es lo suficientemente pequeña como para que esté perdiendo más tiempo simplemente eligiendo un algoritmo de clasificación, aprendiéndolo y analizándolo detenidamente que si simplemente lo desglosa en esos 10 números.

Normalmente, este tipo de cosas se abordan dentro de la pragma del código que usará, de todos modos, para una pequeña cantidad de números, haría algo como a continuación. Ahora, reflexione sobre por qué es recursivo. Disfruta 🙂

  my @sorted = & sortme (@arr);                                                                                                                                                                                     


 sub sortme {
     my @all = @_;                                                                                                                                                                                            
     my $ sorted = 1;                                                                                                                                                                                             
     my $ size = escalar @todos;                                                                                                                                                                                   

     for (my $ i = 0; $ i <$ size; $ i ++) {                                                                                                                                                                            
		 my $ next_idx = $ i + 1;                                                                                                                                                                                    
		 my $ prev_idx = $ i-1;                                                                                                                                                                                    
		 my $ val = $ all [$ i];                                                                                                                                                                                    
		 # siguiente válido?
		 if ($ next_idx <$ tamaño) {
             if ($ all [$ next_idx] <$ val) {
				 $ all [$ i] = $ all [$ next_idx];                                                                                                                                                              
				 $ all [$ next_idx] = $ val;                                                                                                                                                                         
				 $ ordenado = 0;                                                                                                                                                                                    
    		 }
		 }
         if ($ prev_idx> = 0) {
             if ($ all [$ prev_idx]> $ val) {
				 $ all [$ i] = $ all [$ prev_idx];                                                                                                                                                              
				 $ all [$ prev_idx] = $ val;                                                                                                                                                                         
				 $ ordenado = 0;                                                                                                                                                                                    
             }
		 }
     }

     @all = & sortme (@all) if! $ sorted;                                                                                                                                                                           

     return @todos;                                                                                                                                                                                                
 }

La clasificación de cubos es simple y adecuada para este caso,

More Interesting

Cómo implementar un algoritmo de sincronización de reloj Berkeley en C ++

¿Qué algoritmos son buenos candidatos para el reconocimiento de sonido? Estoy principalmente interesado en reconocer sonidos en un entorno doméstico, por ejemplo, un temporizador de microondas que suena, un teléfono que suena, un timbre, etc.

¿Cuál es el beneficio de sobrecargar una función recursiva?

Cómo guardar la entrada del usuario dentro de una matriz en Java

¿Es Pegasos un buen algoritmo para SVM no lineal?

¿Es malo si no entiendo un algoritmo? He estado tratando de entender algunos algoritmos (los recursivos en su mayoría), entiendo la mayoría de ellos, pero no pude entender algunos.

¿Cuándo es bueno representar un árbol binario como una matriz?

¿Cuáles serían las implicaciones si pudiera demostrar que he descifrado el algoritmo criptográfico RSA en tiempo polinómico? ¿Qué debería hacer después?

¿Es importante memorizar algoritmos?

Cómo resolver la siguiente recursividad usando el árbol de recursión

¿Se ha completado Javascript Turing?

¿Qué es el algoritmo Twofish?

¿Alguien puede explicar la solución del problema LabelMaker de Hacker Cup de Facebook?

¿Qué algoritmo usa Matlab para calcular las raíces de un polinomio de alto rango?

¿Son las estructuras de datos y los requisitos previos de algoritmos para la arquitectura y organización de computadoras en un curso típico de CS? Estoy aprendiendo por mi cuenta, ¿cuál debería aprender primero? ¿Puedo aprenderlos en paralelo?