█████████ ████ ███░░░░░███ ░░███ ███ ░░░ ██████ ███████ ██████ ██████ ░███ ███░░███ ███░░███ ███░░███ ███░░███ ░███ ░███ ░███░███ ░███ ░███████ ░███ ░███ ░░███ ███░███ ░███░███ ░███ ░███░░░ ░███ ░███ ░░█████████ ░░██████ ░░████████░░██████ ░░██████ ░░░░░░░░░ ░░░░░░ ░░░░░░░░ ░░░░░░ ░░░░░░

0xdd - Ordenar un arreglo pequeño

Uno de los problemas más famosos e importantes en programación consiste en ordenar los elementos de una arreglo.

Escribe un programa que lee N números y los ordena en orden no decreciente (es decir, de menor a mayor).

La idea de este problema es que implementes un algoritmo de sort desde cero (o todavía mejor, ¡que implementes varios!). Para obtener 100 puntos, tu algoritmo debe tener complejidad de tiempo O(n2) (ó menor). Los algoritmos clásicos con complejidad O(n2) son bubble sort, insertion sort y selection sort.

Aunque en la práctica es raro implementar un algoritmo de sort desde cero (normalmente usas la implementación que ya existe en tu lenguaje), es fundamental conocerlos y entenderlos porque sus ideas pueden aplicarse a problemas más complejos.

Entrada

La entrada contiene varias líneas:

  • La primera línea contiene N, el número de números que hay que ordenar.
  • La segunda línea contiene N enteros Ai para 0 ≤ i < N, los elementos a ordenar. Estos números están separados por espacios. Está garantizado que Ai satisface -109Ai ≤ 109.

Salida

La salida debe tener exactamente una línea con los mismos números de la entrada pero ordenados en orden no decreciente. Los números deben estar separados por espacios.

Entrada de ejemplo

6
3 2 1 0 -1 0

Salida de ejemplo

-1 0 0 1 2 3

Restricciones

  • Está garantizado que 1 ≤ N ≤ 1000. Este tamaño de N está diseñado para que algoritmos con complejidad O(n2) como el bubble sort, selection sort ó insertion sort obtengan 100 puntos.

Envía tu solución

Necesitas iniciar sesión para enviar una solución.