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