-
Notifications
You must be signed in to change notification settings - Fork 0
Open
Description
๐ง Algorithm - Algorithm Type
- ๐ง
Reference
๐ Link
๐ [์๊ณ ๋ฆฌ์ฆ ์ด๋ฆ](https://# "์๊ณ ๋ฆฌ์ฆ ์ด๋ฆ/์ข ๋ฅ") ์ง๋ฌธ์ ๋ํด ๋ค์๊ณผ ๊ฐ์ด ๋ต๋ณํ ์ ์์ต๋๋ค:
์ ๋ ฌ ์๊ณ ๋ฆฌ์ฆ์ ์ ํํ ๋๋ ๋ช ๊ฐ์ง ๊ธฐ์ค์ ๊ณ ๋ คํด์ผ ํฉ๋๋ค. ๋ค์์ ์ฝ๋ฉ ํ
์คํธ์์ ์ ๋ ฌ ์๊ณ ๋ฆฌ์ฆ์ ์ ํํ ๋ ์ ์ฉํ ๊ฐ์ด๋๋ผ์ธ์
๋๋ค:
1. ์๊ฐ ๋ณต์ก๋
๋ฐ์ดํฐ์ ํฌ๊ธฐ(N): ๋ฌธ์ ์์ ์ฃผ์ด์ง ๋ฐ์ดํฐ์ ํฌ๊ธฐ๊ฐ ์ ๋ ฌ ์๊ณ ๋ฆฌ์ฆ์ ์ ํํ๋ ์ค์ํ ๊ธฐ์ค์ด ๋ฉ๋๋ค. ์๋ฅผ ๋ค์ด, N์ด ๋งค์ฐ ํฌ๋ค๋ฉด O(N^2) ๋ณต์ก๋๋ฅผ ๊ฐ์ง๋ ๋ฒ๋ธ ์ ๋ ฌ์ด๋ ์ฝ์
์ ๋ ฌ์ ํผํด์ผ ํฉ๋๋ค.
์ ๋ ฌ ์๊ณ ๋ฆฌ์ฆ์ ์๊ฐ ๋ณต์ก๋:
๋ฒ๋ธ ์ ๋ ฌ: O(N^2) (์์ ๋ฐ์ดํฐ๋ ์ด๋ฏธ ์ ๋ ฌ๋ ๊ฒฝ์ฐ ์ ์ธ)
์ฝ์
์ ๋ ฌ: O(N^2) (๊ฑฐ์ ์ ๋ ฌ๋ ๋ฐ์ดํฐ์ ์ ํฉ)
์ ํ ์ ๋ ฌ: O(N^2)
ํต ์ ๋ ฌ: ํ๊ท O(N log N) (์ต์
์ ๊ฒฝ์ฐ O(N^2), ์ค๊ฐ ๊ฐ ํผ๋ฒ ์ฌ์ฉ์ ๋๋ถ๋ถ O(N log N))
๋ณํฉ ์ ๋ ฌ: O(N log N) (๋ชจ๋ ๊ฒฝ์ฐ์ ์์ ์ ์ธ ์ฑ๋ฅ)
ํ ์ ๋ ฌ: O(N log N) (๋น๊ต ๊ธฐ๋ฐ ์ ๋ ฌ ์ค ์์ ์ )
๋ฐ๋ผ์, ๋ฐ์ดํฐ ํฌ๊ธฐ๊ฐ ํฌ๋ค๋ฉด ํต ์ ๋ ฌ, ๋ณํฉ ์ ๋ ฌ, ํ ์ ๋ ฌ ๋ฑ์ ์ ํํ๋ ๊ฒ์ด ์ข์ต๋๋ค. ๋ฐ์ดํฐ๊ฐ ์๊ฑฐ๋ ๊ฑฐ์ ์ ๋ ฌ๋ ์ํ๋ผ๋ฉด ์ฝ์
์ ๋ ฌ๋ ๊ณ ๋ คํ ์ ์์ต๋๋ค.
2. ๊ณต๊ฐ ๋ณต์ก๋
ํต ์ ๋ ฌ: O(log N) ์ถ๊ฐ ๋ฉ๋ชจ๋ฆฌ(์ฌ๊ท ํธ์ถ ์คํ)
๋ณํฉ ์ ๋ ฌ: O(N) ์ถ๊ฐ ๋ฉ๋ชจ๋ฆฌ (์๋ก์ด ๋ฐฐ์ด ์ฌ์ฉ)
์ฝ์
์ ๋ ฌ, ๋ฒ๋ธ ์ ๋ ฌ, ์ ํ ์ ๋ ฌ: O(1) ์ถ๊ฐ ๋ฉ๋ชจ๋ฆฌ (์ ์๋ฆฌ ์ ๋ ฌ)
๋ฉ๋ชจ๋ฆฌ ์ฌ์ฉ์ด ์ ํ์ ์ผ ๊ฒฝ์ฐ, ์ถ๊ฐ ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ์ด ๊ฑฐ์ ํ์ํ์ง ์์ ์ฝ์
์ ๋ ฌ, ์ ํ ์ ๋ ฌ, ๋๋ ์ต์ ํ๋ ํต ์ ๋ ฌ์ ์ ํํ ์ ์์ต๋๋ค.
3. ํน์ ํ ๋ฌธ์ ์๊ตฌ ์ฌํญ
์์ ์ ์ธ ์ ๋ ฌ: ์์ ์ ์ธ ์ ๋ ฌ(Stable Sort)์ด ํ์ํ๋ค๋ฉด, ๋ณํฉ ์ ๋ ฌ์ด๋ ์ฝ์
์ ๋ ฌ์ ์ฌ์ฉํฉ๋๋ค. ํต ์ ๋ ฌ๊ณผ ํ ์ ๋ ฌ์ ๊ธฐ๋ณธ์ ์ผ๋ก ๋น์์ ์ (Stableํ์ง ์์)์
๋๋ค.
๋ฐ์ดํฐ์ ํน์ฑ: ๋ฐ์ดํฐ๊ฐ ์ด๋ฏธ ๊ฑฐ์ ์ ๋ ฌ๋์ด ์๋ ๊ฒฝ์ฐ, ์ฝ์
์ ๋ ฌ์ด ๋งค์ฐ ํจ์จ์ ์ผ ์ ์์ต๋๋ค. ๋ฐ๋ฉด, ๋ฐ์ดํฐ๊ฐ ๋ฌด์์๋ก ํฉ์ด์ ธ ์๋ ๊ฒฝ์ฐ์๋ ํต ์ ๋ ฌ์ด๋ ๋ณํฉ ์ ๋ ฌ์ด ๋ ์ ํฉํ ์ ์์ต๋๋ค.
4. ๋ฌธ์ ์ ์๊ตฌ ์ฌํญ ๋ฐ ํํธ
๋ฌธ์ ์์ ํน์ ํ ์๊ณ ๋ฆฌ์ฆ์ ์์ํ๊ฑฐ๋ ์๊ตฌํ๋ ๊ฒฝ์ฐ๊ฐ ์์ต๋๋ค. ์๋ฅผ ๋ค์ด, ๋ฌธ์ ์ค๋ช
์ "์ด์ง ํ์์ ์ฌ์ฉํ ์ ์๋ค"๋ผ๋ ๋ด์ฉ์ด ์๋ค๋ฉด, ์ด์ง ํ์์ ์ํด ์ ๋ ฌ์ ๋จผ์ ์ํํด์ผ ํ๋ฏ๋ก, ๋น ๋ฅธ ์ ๋ ฌ ์๊ณ ๋ฆฌ์ฆ(์: ํต ์ ๋ ฌ)์ ์ ํํ ์ ์์ต๋๋ค.
๋๋ ์๊ฐ ์ ํ์ด ๋นก๋นกํ ๊ฒฝ์ฐ, ์ ๋ ฌ ์๊ณ ๋ฆฌ์ฆ์ ์ต์
์ ๊ฒฝ์ฐ ์๊ฐ ๋ณต์ก๋๋ ๊ณ ๋ คํด์ผ ํฉ๋๋ค.
์ ๋ฆฌ
์ ๋ ฌ ์๊ณ ๋ฆฌ์ฆ์ ์ ํํ ๋๋ ๋ฐ์ดํฐ์ ํฌ๊ธฐ, ์ ๋ ฌ ์๊ณ ๋ฆฌ์ฆ์ ์๊ฐ ๋ฐ ๊ณต๊ฐ ๋ณต์ก๋, ๋ฐ์ดํฐ์ ํน์ฑ, ๋ฌธ์ ์ ์๊ตฌ์ฌํญ ๋ฑ์ ์ข
ํฉ์ ์ผ๋ก ๊ณ ๋ คํด์ผ ํฉ๋๋ค. ์ผ๋ฐ์ ์ผ๋ก **N์ด ํฐ ๊ฒฝ์ฐ์๋ O(N log N) ์๊ฐ ๋ณต์ก๋๋ฅผ ๊ฐ์ง๋ ์๊ณ ๋ฆฌ์ฆ(ํต ์ ๋ ฌ, ๋ณํฉ ์ ๋ ฌ, ํ ์ ๋ ฌ)**์ ์ ํํ๋ ๊ฒ์ด ์์ ํ ์ ํ์ด ๋ ์ ์์ต๋๋ค.
๋ฌธ์ ๋ฅผ ํ ๋๋ ๋จผ์ ๋ฐ์ดํฐ์ ํฌ๊ธฐ์ ํน์ฑ์ ๋ถ์ํ๊ณ , ๊ฐ์ฅ ์ ํฉํ ์๊ณ ๋ฆฌ์ฆ์ ์ ํํด ์ ์ฉํด๋ณด์ธ์. ๋ค์ํ ์๊ณ ๋ฆฌ์ฆ์ ํ์ตํ๊ณ ์ต์ํด์ง๋ฉด, ์์ฐ์ค๋ฝ๊ฒ ์ด๋ค ์ํฉ์์ ์ด๋ค ์๊ณ ๋ฆฌ์ฆ์ ์ฌ์ฉํ ์ง ํ๋จํ ์ ์๊ฒ ๋ฉ๋๋ค.
Description
- ํ์ตํ ์๊ณ ๋ฆฌ์ฆ์ ์ค๋ช .
Metadata
Metadata
Assignees
Labels
๐ง Algorithm๐ง Algorithm๐ง Algorithm