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

์ž๋ฃŒ๊ตฌ์กฐ ๋ฐ ์‹ค์Šต

์ž๋ฃŒ๊ตฌ์กฐ ๋ฐ ์‹ค์Šต - [1] ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋ถ„์„ (2)

์ง€๋‚œ ํฌ์ŠคํŒ…์—์„œ๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋ถ„์„์— ํ•„์š”ํ•œ ๊ธฐ๋ณธ์ ์ธ ๊ฒƒ๋“ค์„ ์ ์—ˆ๋‹ค. 

์˜์‚ฌ ์ฝ”๋“œ๋ฅผ ํ™œ์šฉํ•˜์—ฌ ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ํ‘œํ˜„ํ•˜๊ธฐ๋„ ํ•˜๋Š”๋ฐ, ์ „์— ๋ฐฐ์› ๋“ฏ์ด ์‚ฌ์šฉํ•˜๋Š” ํ•˜๋“œ์›จ์–ด์™€ ์†Œํ”„ํŠธ์›จ์–ด์— ๊ด€๊ณ„์—†์ด ์‹คํ–‰์‹œ๊ฐ„์„ ์ถ”์ •ํ•ด์•ผ ํ•œ๋‹ค. 

์ด๋•Œ ์ž„์˜์ ‘๊ทผ๊ธฐ๊ณ„ ๋ชจ๋ธ(Random Access Machine, RAM)์„ ์‚ฌ์šฉํ•˜๋Š”๋ฐ, 

  • ํ•˜๋‚˜์˜ ์ค‘์•™์ฒ˜๋ฆฌ์žฅ์น˜(CPU)
  • ๋ฌด์ œํ•œ์˜ ๋ฉ”๋ชจ๋ฆฌ์…€

์„ ์‚ฌ์šฉํ•˜๊ณ , ๋ฉ”๋ชจ๋ฆฌ ์…€๋“ค์€ ์ˆœ๋ฒˆ์œผ๋กœ ๋‚˜์—ด๋˜๋ฉฐ ์–ด๋–ค ์…€์— ๋Œ€ํ•œ ์ ‘๊ทผ์ด๋ผ๋„ ๋™์ผํ•œ ์‹œ๊ฐ„ ๋‹จ์œ„(์ƒ์ˆ˜)๊ฐ€ ์†Œ์š”๋œ๋‹ค๊ณ  ๊ฐ€์ •ํ•œ๋‹ค.

๋˜ํ•œ ์›์‹œ ์ž‘์—…(Primitive Operations)์˜ ์ตœ๋Œ€ ๊ฐœ์ˆ˜๋ฅผ ์ž…๋ ฅํฌ๊ธฐ์˜ ํ•จ์ˆ˜ ํ˜•ํƒœ๋กœ ๊ฒฐ์ •ํ•  ์ˆ˜ ์žˆ๋Š”๋ฐ, ์›์‹œ ์ž‘์—…์ด๋ž€ ์•Œ๊ณ ๋ฆฌ์ฆ˜์— ์˜ํ•ด ์ˆ˜ํ–‰๋˜๋Š” ๊ธฐ๋ณธ์ ์ธ ๊ณ„์‚ฐ์„ ์˜๋ฏธํ•œ๋‹ค. 

 

  ์˜ˆ๋ฅผ ๋“ค์–ด

  • ์‚ฐ์ˆ ์‹/๋…ผ๋ฆฌ์‹์˜ ํ‰๊ฐ€ (EXP)
  • ๋ณ€์ˆ˜์— ํŠน์ •๊ฐ’์„ ์น˜ํ™˜ (ASS)
  • ๋ฐฐ์—ด์›์†Œ ์ ‘๊ทผ (IND)
  • ๋ฉ”์˜๋“œ ํ˜ธ์ถœ (CAL)
  • ๋ฉ”์˜๋“œ๋กœ๋ถ€ํ„ฐ ๋ฐ˜ํ™˜ (RET)

๋“ฑ์ด ์žˆ๋‹ค. ์›์‹œ ์ž‘์—…์€ ์ž„์˜ ์ ‘๊ทผ ๊ธฐ๊ณ„ ๋ชจ๋ธ์—์„œ ์ˆ˜ํ–‰ ์‹œ ์ƒ์ˆ˜ ์‹œ๊ฐ„์ด ์†Œ์š”๋œ๋‹ค๊ณ  ๊ฐ€์ •ํ•œ๋‹ค.

 

์›์‹œ์ž‘์—… ์ˆ˜๋ฅผ ์„ผ ์˜์‚ฌ์ฝ”๋“œ

์šฐ๋ฆฌ๋Š” ์›์‹œ์ž‘์—…์˜ ์ตœ๋Œ€ ๊ฐœ์ˆ˜๋ฅผ ํ™œ์šฉํ•˜์—ฌ ์‹คํ–‰์‹œ๊ฐ„์„ ์ถ”์ •ํ•  ์ˆ˜ ์žˆ๋‹ค.

์œ„์˜ arrayMax๋Š” ์ตœ์•…์˜ ๊ฒฝ์šฐ 7n-2 ๊ฐœ์˜ ์›์‹œ์ž‘์—…์„ ์‹คํ–‰ํ•˜๋Š”๋ฐ, a = ๊ฐ€์žฅ ๋น ๋ฅธ ์›์‹œ ์ž‘์—… ์‹คํ–‰์— ๊ฑธ๋ฆฌ๋Š” ์‹œ๊ฐ„ / b = ๊ฐ€์žฅ ๋А๋ฆฐ ์›์‹œ์ž‘์—… ์‹คํ–‰์— ๊ฑธ๋ฆฌ๋Š” ์‹œ๊ฐ„์ด๋ผ๊ณ  ์ •์˜ํ•˜๊ณ  T(n) = arrayMax์˜ ์ตœ์•…์ธ ๊ฒฝ์šฐ์˜ ์‹œ๊ฐ„์ด๋ผ๊ณ  ๋†“์œผ๋ฉด ๋‹ค์Œ ์‹์ด ์„ฑ๋ฆฝํ•œ๋‹ค.

$$ a(7n-2) <= T(n) <= b(7n-2) $$

์ฆ‰, ์‹คํ–‰์‹œ๊ฐ„ T(n)์€ ๋‘ ๊ฐœ์˜ ์„ ํ˜• ํ•จ์ˆ˜ ์‚ฌ์ด์— ๋†“์ด๊ฒŒ ๋˜๊ณ , ํ•˜๋“œ์›จ์–ด๋‚˜ ์†Œํ”„ํŠธ์›จ์–ด ํ™˜๊ฒฝ์„ ๋ณ€๊ฒฝํ•˜๋ฉด T(n)์˜ ์ƒ์ˆ˜ ๋ฐฐ์ˆ˜๋งŒํผ์˜ ์˜ํ–ฅ์„ ์ฃผ์ง€๋งŒ, T(n)์˜ ์ฆ๊ฐ€์œจ์€ ๋ณ€ํ•˜์ง€ ์•Š๋Š”๋‹ค. ๋”ฐ๋ผ์„œ ์„ ํ˜•์˜ ์ฆ๊ฐ€์œจ์„ ๋‚˜ํƒ€๋‚ด๋Š” ์‹คํ–‰์‹œ๊ฐ„ T(n)์€ arrayMax์˜ ๊ณ ์œ ํ•œ ์†์„ฑ์ด๋‹ค.

 

 


์šฐ๋ฆฌ๋Š” ์ ๊ทผ๋ถ„์„(asymptotic analysis)์„ ํ•จ์œผ๋กœ์จ Big-oh ํ‘œ๊ธฐ๋ฒ•์— ์˜ํ•œ ์‹คํ–‰์‹œ๊ฐ„์„ ๊ตฌํ•  ์ˆ˜ ์žˆ๋‹ค. ์ ๊ทผ ๋ถ„์„์„ ์ˆ˜ํ–‰ํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ๋‘ ๊ฐ€์ง€ ๋‹จ๊ณ„๋ฅผ ๊ฑฐ์นœ๋‹ค.

  • ์ตœ์•…์˜ ์›์‹œ์ž‘์—… ์‹คํ–‰ ํšŸ์ˆ˜๋ฅผ ์ž…๋ ฅ ํฌ๊ธฐ์˜ ํ•จ์ˆ˜๋กœ์„œ ๊ตฌํ•œ๋‹ค.
  • ์ด ํ•จ์ˆ˜๋ฅผ big-oh ํ‘œ๊ธฐ๋ฒ•์œผ๋กœ ๋‚˜ํƒ€๋‚ธ๋‹ค.

์œ„์™€ ๊ฐ™์ด 7n-2๊ฐœ์˜ ์›์‹œ์ž‘์—…์„ ์‹คํ–‰ํ•œ๋‹ค๋ฉด, "์•Œ๊ณ ๋ฆฌ์ฆ˜์ด O(n)์‹œ๊ฐ„์— ์ˆ˜ํ–‰๋œ๋‹ค."๋ผ๊ณ  ๋งํ•œ๋‹ค. (์ƒ์ˆ˜ ๊ณ„์ˆ˜์™€ ๋‚ฎ์€ ์ฐจ์ˆ˜์˜ ํ•ญ๋“ค์€ ๊ฒฐ๊ตญ ํƒˆ๋ฝ๋˜๋ฏ€๋กœ ์›์‹œ ์ž‘์—… ์ˆ˜๋ฅผ ๊ณ„์‚ฐํ•  ๋•Œ๋ถ€ํ„ฐ ์ด๋“ค์„ ๋ฌด์‹œ ๊ฐ€๋Šฅ)

๋ฐ˜๋ณต๋ฌธ, ์—ฐ์† ๋ฌธ, ์กฐ๊ฑด๋ฌธ ๋“ฑ์€ ์ž์ฃผ ๋ณด๋ฉด ์‹คํ–‰์‹œ๊ฐ„์„ ๋น ๋ฅด๊ฒŒ ๋ˆˆ์น˜์ฑŒ ์ˆ˜ ์žˆ๋‹ค. 

 

์ „ํ˜•์ ์ธ ์ฆ๊ฐ€ํ•จ์ˆ˜๋“ค์˜ Plot์„ ๋ณด์ž.

์ „ํ˜•์ ์ธ ์ฆ๊ฐ€ ํ•จ์ˆ˜๋“ค์˜ ํ”Œ๋กฏ

์šฐ๋ฆฌ๋Š” $$ 2^n, n^3, n^2 $$ ๋“ฑ์˜ ์ฆ๊ฐ€์œจ์„ ๊ฐ€์ง€๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ $$ nlogn $$ ํ˜น์€ ๊ทธ ์ดํ•˜์˜ ์ฆ๊ฐ€์œจ์„ ๊ฐ€์ง€๋„๋ก ๋งŒ๋“ค๊ธฐ๋ฅผ ์›ํ•œ๋‹ค!

 

728x90