๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

STUDY

์‹œ๊ฐ„๋ณต์žก๋„(Time Complexity)

๋ฐ˜์‘ํ˜•

๋ฐฑ์ค€์‚ฌ์ดํŠธ์—์„œ ์‹œ๊ฐ„๋ณต์žก๋„๋ฅผ ๋งˆ์ฃผ์ณ์„œ ๋ฌธ์ œ ํ’€๊ธฐ์ „์— ์ •๋ฆฌ

์ •๋ณด์ฒ˜๋ฆฌ๊ธฐ์‚ฌ๋ฅผ ์ค€๋น„ํ•  ๋•Œ O(n) ์ด๋‚˜ O(log n), O(n2) ๋“ฑ์„ ๋ณด๊ธดํ–ˆ๋Š”๋ฐ ์™ธ์šฐ๊ธฐ์— ๊ธ‰๊ธ‰ํ–ˆ๊ธฐ ๋•Œ๋ฌธ์—...

 

์‹œ๊ฐ„๋ณต์žก๋„๋ž€?
   ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ํ‰๊ฐ€ํ•  ๋•Œ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์œผ๋กœ ์—ฐ์‚ฐ ํšŸ์ˆ˜์— ๋น„ํ•ด ์‹œ๊ฐ„์„ ์–ผ๋งˆ๋‚˜ ์†Œ๋ชจํ•˜๋Š”๊ฐ€์— ๋Œ€ํ•œ ํ‰๊ฐ€๋ฅผ ๋งํ•จ.
   ์‹œ๊ฐ„๋ณต์žก๋„๋ฅผ ํ‘œ๊ธฐํ•˜๋Š” ๋ฐฉ๋ฒ•์—๋Š”  Big-O(์ƒํ•œ์„  ๊ธฐ์ค€), Big-โ„ฆ(ํ•˜ํ•œ์„  ๊ธฐ์ค€), Big-Θ(์ด ๋‘˜์˜ ํ‰๊ท  ๊ธฐ์ค€)์ด ์žˆ๋‹ค.
   ๋ณดํ†ต ๋น…-์˜ค ํ‘œ๊ธฐ๋ฒ•(Big-O)์„ ์‚ฌ์šฉํ•ด์„œ ํ‘œํ˜„ํ•œ๋‹ค.

 

๋น…-์˜ค ํ‘œ๊ธฐ๋ฒ•(Big-O)
   
์•Œ๊ณ ๋ฆฌ์ฆ˜์€ ๊ฐ’์ด ํด์ˆ˜๋ก(=๊ทธ๋ž˜ํ”„๊ฐ€ ์œ„๋กœ ์˜ฌ๋ผ๊ฐˆ์ˆ˜๋ก) ๋น„ํšจ์œจ์ ์ด๋‹ค.
   ๋น…์˜คํ‘œ๊ธฐ๋ฒ•์€ ์ƒํ•œ์„ ์„ ๊ธฐ์ค€ = ์ตœ์•…์˜ ๊ฒฝ์šฐ๋ฅผ ๊ณ ๋ ค = ์ด ์‹œ๊ฐ„๊นŒ์ง€ ๊ฑธ๋ฆด ์ˆ˜ ์žˆ๋‹ค

 

๋น…์˜ค ํ‘œ๊ธฐ๋ฒ•์˜ ์ข…๋ฅ˜ : ((ํšจ์œจ ์ข‹์Œ)) O(1) > O(log n) > O(n) > O(n log n) > O(n^2) > O (2^n) ((ํšจ์œจ ๋‚˜์จ))

                                                      (์ƒ์ˆ˜ํ•จ์ˆ˜ > ๋กœ๊ทธํ•จ์ˆ˜ > ์„ ํ˜•ํ•จ์ˆ˜ > ๋‹คํ•ญํ•จ์ˆ˜ > ์ง€์ˆ˜ํ•จ์ˆ˜)

 

1. O(1) : ์ผ์ •ํ•œ ๋ณต์žก๋„๋ฅผ ๊ฐ€์ง = ์ž…๋ ฅ๊ฐ’์ด ์ฆ๊ฐ€ํ•ด๋„ ์‹œ๊ฐ„์€ ์ฆ๊ฐ€ํ•˜์ง€ ์•Š์Œ

 ex) ์Šคํƒ Push, Pop

2. O(log n) :๋ฐ์ดํ„ฐ๊ฐ€ 2๋ฐฐ๋กœ ์ฆ๊ฐ€ํ•  ๋•Œ, ์—ฐ์‚ฐ์ˆ˜๊ฐ€ 1 ๋‹จ๊ณ„ ์”ฉ ์ฆ๊ฐ€

 ex) ์ด์ง„ํŠธ๋ฆฌ

3. O(n)๊ฐ™์€ ๋น„์œจ๋กœ ๋ณต์žก๋„๊ฐ€ ์ฆ๊ฐ€

 ex) for๋ฌธ

4. O(n log n)

 ex) ํ€ต ์ •๋ ฌ, ๋ณ‘ํ•ฉ ์ •๋ ฌ, ํž™ ์ •๋ ฌ

5. O(n^2)๋ณต์žก๋„๊ฐ€ ์ œ๊ณฑ์œผ๋กœ ์ฆ๊ฐ€ํ•จ

 ex) ์ด์ค‘ for๋ฌธ, ์‚ฝ์ž… ์ •๋ ฌ, ๊ฑฐํ’ˆ ์ •๋ ฌ, ์„ ํƒ ์ •๋ ฌ

6. O (2^n) : ๊ธฐํ•˜๊ธ‰์ˆ˜์ ์œผ๋กœ ์ฆ๊ฐ€ํ•˜๋Š” ๋ณต์žก๋„(2์˜ n์ œ๊ณฑ๋งŒํผ ์ฆ๊ฐ€)

 ex) ํ”ผ๋ณด๋‚˜์น˜ ์ˆ˜์—ด

๋ฐ˜์‘ํ˜•