def heapsort(arr):
    result = []
    build_min_heap(arr)
    while arr:
        result.append(heap_pop(arr))
    return result