μ •λ ¬

μ •λ ¬ (Sorting)

μ •μ˜ : 데이터λ₯Ό μΌμ •ν•œ μˆœμ„œλ‚˜ κ·œμΉ™μ— 따라 μž¬λ°°μ—΄ν•˜λŠ” 것을 μ˜λ―Έν•˜λ©°, νŠΉμ • 기쀀에 따라 데이터λ₯Ό μ˜€λ¦„μ°¨μˆœ(ascending) λ˜λŠ” λ‚΄λ¦Όμ°¨μˆœ(descending)으둜 μ •λ¦¬ν•˜λŠ” μ•Œκ³ λ¦¬μ¦˜

핡심 μš”μ†Œ

μš”μ†Œ
μ„€λͺ…
μ‹œκ°„ λ³΅μž‘λ„
μ •λ ¬ μ•Œκ³ λ¦¬μ¦˜μ˜ μˆ˜ν–‰ μ‹œκ°„μ„ λ‚˜νƒ€λ‚΄λŠ” 척도
곡간 λ³΅μž‘λ„
μ •λ ¬ μˆ˜ν–‰ μ‹œ μΆ”κ°€λ‘œ ν•„μš”ν•œ λ©”λͺ¨λ¦¬ 곡간
μ•ˆμ •μ„±
λ™μΌν•œ 값에 λŒ€ν•΄ μ›λž˜μ˜ μˆœμ„œκ°€ μœ μ§€λ˜λŠ”μ§€ μ—¬λΆ€
데이터 크기
μ •λ ¬ν•  λ°μ΄ν„°μ˜ 양에 λ”°λ₯Έ μ•Œκ³ λ¦¬μ¦˜ 선택

μ •λ ¬ μ•Œκ³ λ¦¬μ¦˜ 비ꡐ ν‘œ

μ •λ ¬ μ•Œκ³ λ¦¬μ¦˜
κ°œλ…
μ‹œκ°„ λ³΅μž‘λ„ (μ΅œμ•…)
μ‹œκ°„ λ³΅μž‘λ„ (평균)
μ‹œκ°„ λ³΅μž‘λ„ (μ΅œμ„ )
νŠΉμ§•
버블 μ •λ ¬ (Bubble Sort)
μΈμ ‘ν•œ μ›μ†Œλ₯Ό λΉ„κ΅ν•˜μ—¬ κ΅ν™˜
O(𝑛²)
O(𝑛²)
O(𝑛)
λ‹¨μˆœν•˜μ§€λ§Œ λΉ„νš¨μœ¨μ 
선택 μ •λ ¬ (Selection Sort)
κ°€μž₯ μž‘μ€(λ˜λŠ” 큰) μ›μ†Œ 선택 ν›„ μ •λ ¬
O(𝑛²)
O(𝑛²)
O(𝑛²)
데이터 이동 횟수 적음
μ‚½μž… μ •λ ¬ (Insertion Sort)
μ •λ ¬λœ 뢀뢄에 μ›μ†Œ μ‚½μž…
O(𝑛²)
O(𝑛²)
O(𝑛)
μž‘μ€ λ°μ΄ν„°μ…‹μ—μ„œ 우수
병합 μ •λ ¬ (Merge Sort)
리슀트λ₯Ό λΆ„ν•  ν›„ 병합 (λΆ„ν•  정볡)
O(𝑛 log 𝑛)
O(𝑛 log 𝑛)
O(𝑛 log 𝑛)
μ•ˆμ • μ •λ ¬, μΆ”κ°€ λ©”λͺ¨λ¦¬ ν•„μš”
퀡 μ •λ ¬ (Quick Sort)
피벗을 κΈ°μ€€μœΌλ‘œ λΆ„ν•  ν›„ μ •λ ¬ (λΆ„ν•  정볡)
O(𝑛²)
O(𝑛 log 𝑛)
O(𝑛 log 𝑛)
ν‰κ· μ μœΌλ‘œ κ°€μž₯ 빠름
νž™ μ •λ ¬ (Heap Sort)
νž™(μ™„μ „μ΄μ§„νŠΈλ¦¬) 자료ꡬ쑰 ν™œμš©
O(𝑛 log 𝑛)
O(𝑛 log 𝑛)
O(𝑛 log 𝑛)
μΆ”κ°€ λ©”λͺ¨λ¦¬ μ‚¬μš© μ—†μŒ