¿Qué es un programa Java bueno y simple para ordenar números en orden ascendente?

¿Un programa Java simple para ordenar números en orden ascendente?

Java ya proporciona una función de clasificación incorporada en el paquete java.util .

// nombre del archivo Main.java

import java.util.Arrays;
clase pública principal {

public static void main (String [] args) {
int [] a = {3,2,1};
Arreglos.sort (a);
// a ahora está ordenado

}
}

El programa usa la función de ordenamiento incorporada para ordenar una matriz de enteros. Se implementa utilizando el tipo de inserción y la clasificación rápida. En el peor de los casos (personalmente me he encontrado al resolver problemas que necesitan un paso de clasificación), el tiempo de ejecución de la función de clasificación anterior es [matemática] O (n ^ 2). [/ math] Para obtener un algoritmo asintóticamente más rápido, debe usar la versión en caja de los enteros, que es la clase [math] Integer [/ math] en java. Resulta que para los tipos no primitivos, la función de ordenamiento incorporado utiliza Timsort – Wikipedia, que es una combinación de ordenamiento por inserción y ordenamiento por fusión; se garantiza que la ordenación de combinación sea [math] O (nlgn) [/ math], así que hemos terminado.

En resumen,

  1. Use Arrays.sort (int [] a) para ordenar enteros.
  2. Para los tipos primitivos, puede ser lento para ciertos casos de prueba, pero es menos probable que suceda.
  3. Para los tipos no primitivos, tiene garantizado un algoritmo de clasificación asintóticamente óptimo.

Ya sea que tenga una matriz o una colección (por ejemplo, Lista), las clases de utilidad en java.util se ordenarán en el orden natural de los elementos, por lo tanto, dados los números, los ordenarán numéricamente en orden ascendente. Además, existen métodos abreviados que se pueden usar con flujos de números.

Puede usar el orden de selección o el orden de inserción. Son intuitivos y simples. El código se proporciona en los siguientes enlaces con información adicional sobre ellos.

Tipo de selección

Tipo de inserción

¿El que escribes tú mismo, para que la tarea que te dieron te ayude a convertirte en programador?

Sugerencia: google “bubble sort” y comienza a intentarlo.

More Interesting

¿Cómo resolvemos el problema B, 'Can of Worms', del Chicago Invitational Programming Contest 2013?

Dado un gráfico ponderado de N nodos, ¿existe un algoritmo que calcule la ruta más corta entre todos los nodos?

¿Cómo escribo el programa C c de la matriz de orden N * N donde el usuario proporciona N sin usar una matriz?

Cómo implementar un árbol de segmentos con treaps

¿Cuál es la optimización de un conjunto de antenas?

Si necesita almacenar operaciones de deshacer / rehacer en un procesador de textos, ¿qué estructura de datos se puede usar?

¿Qué tan útil es el algoritmo genético?

¿Cómo pruebo que no existen estados recurrentes nulos en un estado finito DTMC (cadena de Markov de tiempo discreto)?

¿Cuál es un buen enfoque de aprendizaje automático para recomendar noticias basadas en el historial de lectura de un usuario?

¿Debería un ingeniero que no sea CS aprender programación, algoritmos y estructuras de datos?

¿Cómo podría encontrar la métrica correcta que se utilizará para los vecinos más cercanos u otros algoritmos basados ​​en similitudes?

¿Cuál es el mejor enfoque para adivinar los diacríticos árabes mediante programación?

¿Cómo se puede calcular su edad en días? Necesito el algoritmo más simplificado para resolverlo.

¿Cuál es la mejor manera de implementar una lista cerrada para un algoritmo de búsqueda en C?

¿Cuál es la mejor fuente para aprender del algoritmo y la estructura de datos para principiantes?