์๊ฐ๋ณต์ก๋ (Time Complexity)
์๊ณ ๋ฆฌ์ฆ์ด๋ ํ๋ก๊ทธ๋จ์ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋ ๋ฐ ํ์ํ ์ฐ์ฐ ํ์๋ฅผ ๋ํ๋ด๋ ์ฒ๋. ์
๋ ฅ ํฌ๊ธฐ์ ๋ฐ๋ผ ์คํ ์๊ฐ์ด ์ด๋ป๊ฒ ์ฆ๊ฐํ๋์ง๋ฅผ ํํํฉ๋๋ค.
ํต์ฌ์์
โข
Big O ํ๊ธฐ๋ฒ (์ต์
์ ๊ฒฝ์ฐ)
โข
์
๋ ฅ ํฌ๊ธฐ (n)
โข
๊ธฐ๋ณธ ์ฐ์ฐ์ ํ์
์๊ฐ๋ณต์ก๋ ๊ตฌํ๋ ๋ฒ
1.
๊ฐ์ฅ ๋ด๋ถ์ ์๋ ๊ธฐ๋ณธ ์ฐ์ฐ ํ์
2.
๋ฐ๋ณต๋ฌธ์ด๋ ์ฌ๊ท์ ์คํ ํ์ ๊ณ์ฐ
3.
์ ์ฒด ์ํ ์๊ฐ์ ๊ฐ์ฅ ํฐ ์ํฅ์ ๋ฏธ์น๋ ํญ ์ ํ
4.
๊ณ์์ ๋ฎ์ ์ฐจ์์ ํญ ์ ๊ฑฐ
์๊ฐ๋ณต์ก๋ ์ข ๋ฅ (๋น ๋ฅธ์)
์๊ฐ๋ณต์ก๋ | ๋ช
์นญ | ์ค๋ช
|
O(1) | ์์ ์๊ฐ | ์
๋ ฅ ํฌ๊ธฐ์ ๊ด๊ณ์์ด ์ผ์ ํ ์๊ฐ |
O(log n) | ๋ก๊ทธ ์๊ฐ | ์ด์ง ํ์ ๋ฑ์์ ๋ฐ์ |
O(n) | ์ ํ ์๊ฐ | ์
๋ ฅ์ ๋น๋กํ์ฌ ์ฆ๊ฐ |
O(n log n) | ์ ํ ๋ก๊ทธ ์๊ฐ | ํจ์จ์ ์ธ ์ ๋ ฌ ์๊ณ ๋ฆฌ์ฆ |
O(nยฒ) | ์ด์ฐจ ์๊ฐ | ์ค์ฒฉ๋ ๋ฐ๋ณต๋ฌธ์์ ๋ฐ์ |
O(2โฟ) | ์ง์ ์๊ฐ | ๋ชจ๋ ๋ถ๋ถ์งํฉ์ ํ์ธํ ๋ |
O(n!) | ํฉํ ๋ฆฌ์ผ ์๊ฐ | ๋ชจ๋ ์์ด์ ํ์ธํ ๋ |
์ฃผ์ ์๊ณ ๋ฆฌ์ฆ ๊ธฐ๋ฒ์ ์๊ฐ ๋ณต์ก๋
์๊ณ ๋ฆฌ์ฆ | ์๊ฐ๋ณต์ก๋ | ํน์ง |
BFS | O(V + E) | V: ์ ์ , E: ๊ฐ์ |
DFS | O(V + E) | V: ์ ์ , E: ๊ฐ์ |
DP | ๋ฌธ์ ์ ๋ฐ๋ผ ๋ค๋ฆ | ์ค๋ณต ๊ณ์ฐ ๋ฐฉ์ง |
๋ฐฑํธ๋ํน | O(2^n) | ์ต์
์ ๊ฒฝ์ฐ |
๊ทธ๋ฆฌ๋ | ๋ฌธ์ ์ ๋ฐ๋ผ ๋ค๋ฆ | ์ง์ญ์ ์ต์ ํด |
๋ค์ต์คํธ๋ผ | O((V+E)logV) | ์ฐ์ ์์ ํ ์ฌ์ฉ |
๋ถํ ์ ๋ณต | O(nlogn) | ์ผ๋ฐ์ ์ธ ๊ฒฝ์ฐ |
์ด์ง ํ์ | O(logn) | ์ ๋ ฌ๋ ๋ฐฐ์ด |
์ ๋ ฌ ์๊ณ ๋ฆฌ์ฆ์ ์๊ฐ ๋ณต์ก๋
์ ๋ ฌ ์๊ณ ๋ฆฌ์ฆ | ํ๊ท | ์ต์
| ๊ณต๊ฐ๋ณต์ก๋ |
์ ํ์ ๋ ฌ | O(nยฒ) | O(nยฒ) | O(1) |
๋ฒ๋ธ์ ๋ ฌ | O(nยฒ) | O(nยฒ) | O(1) |
์ฝ์
์ ๋ ฌ | O(nยฒ) | O(nยฒ) | O(1) |
๋ณํฉ์ ๋ ฌ | O(nlogn) | O(nlogn) | O(n) |
ํต์ ๋ ฌ | O(nlogn) | O(nยฒ) | O(logn) |
์๊ฐ๋ณต์ก๋ ํ๊ธฐ ๊ดํ
์ผ๋ฐ์ ์ผ๋ก ์๊ณ ๋ฆฌ์ฆ์ ์๊ฐ๋ณต์ก๋๋ฅผ ํํํ ๋๋ ์ต์
์ ๊ฒฝ์ฐ(Worst Case)๋ฅผ ๊ธฐ์ค์ผ๋ก ํฉ๋๋ค.
์ด์
โข
์๊ณ ๋ฆฌ์ฆ์ ์ฑ๋ฅ ๋ณด์ฅ: ์ต์
์ ๊ฒฝ์ฐ๋ฅผ ์๋ฉด ๊ทธ๋ณด๋ค ๋์ ์ฑ๋ฅ์ด ๋์ฌ ์ ์์์ ๋ณด์ฅํ ์ ์์ต๋๋ค.
โข
์์ ์ฑ ์์ธก: ์์คํ
์ค๊ณ ์ ํ์ํ ์์์ ์ ํํ๊ฒ ์์ธกํ ์ ์์ต๋๋ค.
โข
์ ๋ขฐ์ฑ: ์ฌ์ฉ์์๊ฒ ์ต์ํ์ ์ฑ๋ฅ์ ๋ณด์ฅํ ์ ์์ต๋๋ค.
ํ์ง๋ง ๊ฒฝ์ฐ์ ๋ฐ๋ผ ํ๊ท ์๊ฐ๋ณต์ก๋(Average Case)๋ ์ค์ํ ์ ์์ต๋๋ค:
โข
์ค์ ์ฌ์ฉ ํ๊ฒฝ: ๋๋ถ๋ถ์ ๊ฒฝ์ฐ ํ๊ท ์ ์ธ ์ฑ๋ฅ์ผ๋ก ์๋ํ๊ธฐ ๋๋ฌธ์
๋๋ค.
โข
ํต์ ๋ ฌ์ ์: ์ต์
์ ๊ฒฝ์ฐ O(nยฒ)์ด์ง๋ง, ํ๊ท ์ ์ผ๋ก O(nlogn)์ผ๋ก ๋งค์ฐ ํจ์จ์ ์
๋๋ค.