Heap_sort.md
๊ฐ๋
๊ทธ์ ์, ํ(heap)์๋ฃ๊ตฌ์กฐ๋?
Heap
์์ ์ด์งํธ๋ฆฌ์ ํ๋๋ก ์ฐ์ ์์ ํ๋ฅผ ์ํด ๋ง๋ค์ด์ง ์๋ฃ๊ตฌ์กฐ
๋ด๋ฆผ์ฐจ์ ์ ๋ ฌ ์ต๋ ํ ๊ตฌ์ฑ
์ค๋ฆ์ฐจ์ ์ ๋ ฌ ์ต์ ํ ๊ตฌ์ฑ
ํน์ง
์งง์ ์๊ฐ ๋ณต์ก๋
์ต๋/์ต์๊ฐ์ด ํ์ํ ๋ ๊ฐ์ฅ ์ ์ฉํ๊ฒ ์ฐ์ธ๋ค
์๊ฐ ๋ณต์ก๋ O(nlogโn)
๊ตฌํ
Python์์๋ heapq ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ฌ์ฉํ์ฌ ์์ฝ๊ฒ ๊ตฌํ์ด ๊ฐ๋ฅํ๋ค
import heapq
# ์ค๋ฆ์ฐจ์ ์ ๋ ฌ
def min_heap(arr):
return heapq.heapify(arr)
# ๋ด๋ฆผ์ฐจ์ ์ ๋ ฌ
def max_heap(arr):
result = []
for i in arr:
heapq.heappush(result, (-i, i)) #์ฐ์ ์์, ๊ฐ
return result[1:] #๊ณ์ฐ์ ์ฉ์ด๋ฅผ ์ํด 0๋ฒ์จฐ ์ธ๋ฑ์ค๋ ์ฌ์ฉํ์ง ์์ต๋๋ค.
Last updated