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

Envío 1571

Problema 0xde - Ordenar un arreglo grande

  • Autor: Serivt
  • Fecha: 2020-11-05 02:03:07 UTC (Hace alrededor de 4 años)
Caso # Resultado Tiempo Memoria
#1
Correcto
0.022 s 3 KBi
#2
Correcto
0.029 s 3 KBi
#3
Correcto
0.034 s 3 KBi
#4
Correcto
0.026 s 3 KBi
#5
Correcto
0.029 s 3 KBi
#6
Correcto
0.023 s 3 KBi
#7
Correcto
0.154 s 11 KBi
#8
Correcto
0.516 s 11 KBi
#9
Correcto
0.43 s 11 KBi
#10
Tiempo límite excedido
0.778 s 9 KBi
#11
Correcto
0.173 s 15 KBi
#12
Correcto
0.185 s 15 KBi
#13
Tiempo límite excedido
0.492 s 14 KBi
#14
Tiempo límite excedido
0.675 s 14 KBi
#15
Tiempo límite excedido
0.66 s 14 KBi
#16
Tiempo límite excedido
1.037 s 15 KBi
#17
Tiempo límite excedido
1.068 s 14 KBi
#18
Correcto
0.781 s 14 KBi
#19
Tiempo límite excedido
0.694 s 14 KBi
#20
Correcto
0.608 s 11 KBi
#21
Correcto
0.745 s 14 KBi
#22
Tiempo límite excedido
0.695 s 14 KBi
#23
Tiempo límite excedido
0.605 s 14 KBi
#24
Tiempo límite excedido
0.738 s 14 KBi
#25
Tiempo límite excedido
0.653 s 14 KBi
#26
Correcto
0.785 s 14 KBi
#27
Tiempo límite excedido
0.534 s 14 KBi
Puntos totales: 56 / 100

Código

import heapq

def down_heap(arr, index, length):
    left = (index + 1) * 2 - 1
    while left < length:
        if left < length and arr[left] > arr[left + 1]:
            left = left + 1
        if arr[index] > arr[left]:
            arr[index], arr[left], index = arr[left], arr[index], left
            left = (left + 1) * 2 - 1
        else:
            break

# def buildheap(arr):
#    length = len(arr)
#    for i in range(length // 2, 0, -1):
#        down_heap(arr, i - 1, length - 1)
#    print(arr)

def heapsort(arr):
    # buildheap(arr)
    heapq.heapify(arr)
    length = len(arr)
    for i in range(1, length):
        arr[0], arr[length - i] = arr[length - i], arr[0]
        down_heap(arr, 0, length - i - 1)
    arr.reverse()


if __name__ == "__main__":
    n = input()
    arr = list(map(int, input().split(" ")))
    heapsort(arr)
    print(" ".join(map(str, arr)))