ν‹°μŠ€ν† λ¦¬ λ·°

728x90

νž™ μ •λ ¬

: κΈ°λ³Έ μ•„μ΄λ””μ–΄λŠ” 버블 μ •λ ¬κ³Ό λΉ„μŠ·ν•˜λ‹€. 

  1등을 뽑아내고, λ‚˜λ¨Έμ§€ μ›μ†Œμ—μ„œ 1등을 계속 뽑아내며 μ •λ ¬ν•œλ‹€.

  버블 μ •λ ¬κ³Ό λ‹€λ₯Έ 점은, 버블 정렬은 남은 μ›μ†Œμ—μ„œ 1등을 λ‹€μ‹œ 비ꡐλ₯Ό 톡해 μ°Ύμ•„μ•Ό ν•˜μ§€λ§Œ

  νž™ 정렬은 νž™(Heap)을 μ΄μš©ν•˜λ©΄, 1등을 뽑아낸 λ’€, λ‚˜λ¨Έμ§€ μ›μ†Œμ—μ„œ 1등을 뽑을 λ•Œ λ‹€μ‹œ 비ꡐ할 ν•„μš” 없이 2등이 μžλ™μœΌλ‘œ 1등이 λœλ‹€.

 

그럼, νž™(Heap)에 λŒ€ν•΄ 잠깐 μ•Œμ•„λ³΄μž.

νž™μ˜ μ„±μ§ˆ

1. 리프 λ…Έλ“œλ₯Ό μ œμ™Έν•œ λͺ¨λ“  λ…Έλ“œλŠ” μžμ‹μ΄ λ°˜λ“œμ‹œ 2λͺ…

2. Max heap: λΆ€λͺ¨λŠ” μžμ‹λ³΄λ‹€ λ°˜λ“œμ‹œ 크닀. Min heap: λΆ€λͺ¨λŠ” μžμ‹λ³΄λ‹€ λ°˜λ“œμ‹œ μž‘λ‹€.

 

Min heap, Max heap( 좜처: https://guides.codepath.com/compsci/Heaps )

 

νž™μ˜ μ‚½μž…κ³Ό μ‚­μ œ (좜처: https://guides.codepath.com/compsci/Heaps)

자, 이제 νž™ 정렬에 λŒ€ν•΄ 본격적으둜 λ“€μ–΄κ°€λ³΄μž.

μš°μ„  λ‹€μŒκ³Ό 같은 큰 쀄기λ₯Ό 가진닀.

" Heapify(νž™μœΌλ‘œ λ§Œλ“€κΈ°) " -> " μ •λ ¬"

백문이 λΆˆμ—¬μΌRun [3, 5, 7, 9, 4, 2]λ₯Ό μ •λ ¬ν•΄λ³΄μž.

 

1) Heapify

 

2) μ •λ ¬

 

루트 λ…Έλ“œμ— μžˆλŠ” μ›μ†Œκ°€ μ΅œλŒ€κ°’μ΄λ―€λ‘œ ν•΄λ‹Ή μ›μ†Œλ₯Ό 가져와 리슀트의 κ°€μž₯ λ§ˆμ§€λ§‰ μΈλ±μŠ€μ— μ‚½μž…ν•œλ‹€.

 

μœ„μ™€ 같은 과정을 λ°˜λ³΅ν•˜λ©° 정렬을 μ™„μ„±ν•œλ‹€.

 

이와 λ™μΌν•œ 과정을 λ°°μ—΄λ‘œ ν‘œν˜„ν•œ 과정도 같이 μ°Έκ³ ν•΄μ„œ μ΄ν•΄ν•΄λ³΄μž. 

(좜처: https://www.youtube.com/watch?v=gB7qYgikT1Y)

 

μ‹œκ°„ λ³΅μž‘λ„

: O(nlogn)

728x90
곡지사항
μ΅œκ·Όμ— 올라온 κΈ€
μ΅œκ·Όμ— 달린 λŒ“κΈ€
Total
Today
Yesterday
Β«   2024/11   Β»
일 μ›” ν™” 수 λͺ© 금 ν† 
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
κΈ€ 보관함
250x250