import heapq
def heapsort(iterable):
h = []
result = []
for value in iterable:
heapq.heappush(h, value)
for _ in range(len(h)):
result.append(heapq.heappop(h))
return result
result = heapsort([1, 3, 5, 7, 9, 2, 4, 6, 8, 0])
print(result)
최대 힙
import heapq
def heapsort_max(iterable):
h = []
result = []
for value in iterable:
heapq.heappush(h, -value)
for _ in range(len(h)):
result.append(-heapq.heappop(h))
return result
result = heapsort([1, 3, 5, 7, 9, 2, 4, 6, 8, 0])
print(result)
'코테 > Python기법' 카테고리의 다른 글
[Python기법] 배열 출력 . join / * (0) | 2024.03.21 |
---|---|
[Python기법] Counter (0) | 2024.03.20 |
[Python기법] itertools (0) | 2024.03.20 |
[Python기법] 집합 자료형 (0) | 2024.03.20 |
[Python기법] 리스트 컴프리헨션 (0) | 2024.03.20 |