peewoong 2024. 4. 13. 23:27

🟩 자리수λ₯Ό λΉ„κ΅ν•˜λ©° 정렬을 μ§„ν–‰ν•˜λŠ” μ•Œκ³ λ¦¬μ¦˜

 

🟩 μ’…λ₯˜

1. LSD (Least Significant Digit) 기수 μ •λ ¬

κ°€μž₯ μž‘μ€ μžλ¦Ώμˆ˜λΆ€ν„° μ •λ ¬ μ§„ν–‰ (예 : 일의 μžλ¦Ώμˆ˜λΆ€ν„°)

Right-to-Left

κ°€μž₯ μž‘μ€ μžλ¦Ώμˆ˜λΆ€ν„° 큰 μžλ¦Ώμˆ˜κΉŒμ§€ 비ꡐ해야 ν•œλ‹€λŠ” 단점이 μžˆμ§€λ§Œ, μ½”λ“œ κ΅¬ν˜„μ΄ MSD에 λΉ„ν•΄ κ°„κ²°ν•˜λ‹€.

λ§ˆμ§€λ§‰ μžλ¦Ώμˆ˜κΉŒμ§€ 검사λ₯Ό 마친 경우, μ˜€λ¦„μ°¨μˆœμœΌλ‘œ 정렬이 μ™„λ£Œλ¨

 

2. MSD (Most Significant Digit) 기수 μ •λ ¬

κ°€μž₯ 큰 μžλ¦Ώμˆ˜λΆ€ν„° μ •λ ¬ μ§„ν–‰

Left-to-Right

LSD와 λΉ„κ΅ν–ˆμ„ λ•Œ, μ •λ ¬ μƒνƒœ 확인 λ“±μ˜ μΆ”κ°€ μž‘μ—…μ΄ ν•„μš”ν•˜μ§€λ§Œ, 쀑간에 정렬이 μ™„λ£Œλ  수 μžˆλ‹€λŠ” μž₯점이 μžˆλ‹€.

 

 

🟩 νŠΉμ§• 및 μž₯단점

μ •λ ¬ μˆœμ„œμƒ μ•žκ³Ό λ’€μ˜ νŒλ‹¨μ„ μœ„ν•œ 비ꡐ 연산을 ν•˜μ§€ μ•ŠμŒ

μ •λ ¬ λŒ€μƒμ˜ λͺ¨λ“  길이가 동일해야 κ°€μž₯ 효율적

μ •λ ¬ λŒ€μƒμ˜ 자리수λ₯Ό κΈ°μ€€μœΌλ‘œ '버킷'μ΄λΌλŠ” 곡간에 '큐' 방식(FIFO)으둜 μ €μž₯ ν›„ λ‹€μ‹œ κΊΌλ‚Έλ‹€.

 

(μž₯) ν‚€μ˜ 길이 dκ°€ μž‘λ‹€λ©΄ O(n)의 μ‹œκ°„μœΌλ‘œ 정렬이 κ°€λŠ₯ν•˜κΈ° λ•Œλ¬Έμ— ꡉμž₯히 λΉ λ₯Έ μ†λ„λ‘œ μ •λ ¬ κ°€λŠ₯

(μž₯) 비ꡐ μ—°μ‚° 없이 μ •λ ¬ μˆ˜ν–‰ κ°€λŠ₯

(단) μΆ”κ°€μ μœΌλ‘œ 버킷을 μ‚¬μš©ν•˜κΈ° λ•Œλ¬Έμ— 데이터 크기에 λΉ„λ‘€ν•œ λ©”λͺ¨λ¦¬ ν•„μš”

(단) μ •λ ¬μ˜ νŠΉμˆ˜μ„± λ•Œλ¬Έμ—, λΆ€λ™μ†Œμˆ˜μ  및 μ‹€μˆ˜ λ“± νŠΉμˆ˜ν•œ 비ꡐ 연산이 ν•„μš”ν•œ λ°μ΄ν„°μ—λŠ” 적용이 μ–΄λ ΅λ‹€.

 

🟩 μ‹œκ°„λ³΅μž‘λ„ O(n)

ν‚€μ˜ 수λ₯Ό n, ν‚€μ˜ μ΅œλŒ€ 길이λ₯Ό d라 ν•  λ•Œ O(d * n)