์ฝ”๋”ฉํ…Œ์ŠคํŠธ ๋ฌธ์ œ๋ฅผ ํ’€๊ธฐ ์œ„ํ•ด "๊ฐ€์žฅ ํšจ์œจ์ ์œผ๋กœ ํ•ด๊ฒฐํ•˜๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜" ํ•„์š”

→ ํšจ์œจ์ ์œผ๋กœ ํ‘ธ๋Š” ๊ฒƒ์€ ์ œํ•œ ์‹œ๊ฐ„๊ณผ ๊ด€๋ จ์ด ์žˆ์œผ๋ฉฐ ๋ฌธ์ œ๋ฅผ ๋น ๋ฅด๊ฒŒ ํ‘ธ๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์„ ํƒ

 

์•Œ๊ณ ๋ฆฌ์ฆ˜ ์ˆ˜ํ–‰ ์‹œ๊ฐ„์„ ์ธก์ •ํ•˜๋Š” ๋ฐฉ๋ฒ•

1) ์ ˆ๋Œ€ ์‹œ๊ฐ„ ์ธก์ • : ๋ง ๊ทธ๋Œ€๋กœ ์‹œ๊ฐ„ ์ธก์ •

2) ์‹œ๊ฐ„ ๋ณต์žก๋„ ์ธก์ • : ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์‹œ์ž‘ ์ˆœ๊ฐ„๋ถ€ํ„ฐ ๊ฒฐ๊ด๊ฐ’์ด ๋‚˜์˜ฌ ๋•Œ๊นŒ์ง€์˜ ์—ฐ์‚ฐ ํšŸ์ˆ˜ ์ธก์ •

  • ์ž…๋ ฅ ํฌ๊ธฐ : ์ž…๋ ฅ ํฌ๊ธฐ๊ฐ€ ๋‹ค์–‘ํ•˜๋ฉฐ ์ด์— ๋”ฐ๋ผ ๊ฒฐ๊ณผ๊ฐ€ ๋‹ฌ๋ผ์ง€๋ฏ€๋กœ N์œผ๋กœ ์ผ๋ฐ˜ํ™”
  • ์ธก์ • ๊ฒฐ๊ณผ : ์ตœ์„ (best) / ๋ณดํ†ต(normal) / ์ตœ์•…(worst)
  • ํ‘œํ˜„ ๋ฐฉ์‹ : ์ ๊ทผ ํ‘œ๊ธฐ๋ฒ•์œผ๋กœ ์‚ฌ์šฉ

 

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

์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ์„ฑ๋Šฅ์„ ๋‚˜ํƒ€๋‚ด๋Š” ์ง€ํ‘œ๋กœ ์ž…๋ ฅ ํฌ๊ธฐ์— ๋Œ€ํ•œ ์—ฐ์‚ฐ ํšŸ์ˆ˜

 

ex) 1์ฐจ์› ๋ฐฐ์—ด ๊ฒ€์ƒ‰

  • ๊ฐ’์„ ๊ฐ€์žฅ ๋นจ๋ฆฌ ์ฐพ๋Š” ๊ฒฝ์šฐ : ๊ฒ€์ƒ‰ ์‹œ์ž‘ ์œ„์น˜์— ์ฐพ์„ ๊ฐ’์ด ๋ฐ”๋กœ ์œ„์น˜ํ•œ ๊ฒฝ์šฐ
  • ๊ฐ’์„ ๊ฐ€์žฅ ๋Šฆ๊ฒŒ ์ฐพ๋Š” ๊ฒฝ์šฐ : ์ฐพ์œผ๋ ค๋Š” ๊ฐ’์ด ์—†๊ฑฐ๋‚˜ ๊ฐ€์žฅ ๋งˆ์ง€๋ง‰์— ์œ„์น˜ํ•œ ๊ฒฝ์šฐ

 

์ ๊ทผ์  ํ‘œ๊ธฐ๋ฒ•

์ž…๋ ฅ ํฌ๊ธฐ์— ๋”ฐ๋ฅธ ์—ฐ์‚ฐ ํšŸ์ˆ˜์˜ ์ถ”์ด๋ฅผ ํ™œ์šฉํ•ด ์‹œ๊ฐ„ ๋ณต์žก๋„ ํ‘œํ˜„

  • ๋น…์˜ค(Big-O, O) ํ‘œ๊ธฐ๋ฒ• : ์ตœ์•…์ผ ๋•Œ ์—ฐ์‚ฐํšŸ์ˆ˜ (์ˆ˜ํ–‰์‹œ๊ฐ„์˜ ์ƒํ•œ)   โ˜… ์ฃผ๋กœ ์‚ฌ์šฉ โ˜…
    • ๋ชจ๋“  ์ผ€์ด์Šค๋ฅผ ํ†ต๊ณผํ•ด์•ผํ•˜๋ฏ€๋กœ ์ฃผ๋กœ ์ตœ์•…์˜ ๊ฒฝ์šฐ์ธ ๋น…์˜ค๋ฅผ ๊ธฐ์ค€์œผ๋กœ ๊ณ„์‚ฐ 
  • ๋น…์˜ค๋ฉ”๊ฐ€(Big-Omega, Ω) ํ‘œ๊ธฐ๋ฒ• : ์ตœ์„ ์ผ ๋•Œ ์—ฐ์‚ฐํšŸ์ˆ˜ (์ˆ˜ํ–‰์‹œ๊ฐ„์˜ ํ•˜ํ•œ)
  • ๋น…์„ธํƒ€(Big Theta, Θ) ํ‘œ๊ธฐ๋ฒ• : ๋ณดํ†ต์ผ ๋•Œ ์—ฐ์‚ฐํšŸ์ˆ˜ (์ˆ˜ํ–‰์‹œ๊ฐ„์˜ ์ƒํ•œ๊ณผ ํ•˜ํ•œ)

 

๋น…์˜ค ํ‘œ๊ธฐ๋ฒ•์˜ ์ข…๋ฅ˜

1. O(1) : ์ƒ์ˆ˜

์ž…๋ ฅ ๋ฐ์ดํ„ฐ ํฌ๊ธฐ์— ์ƒ๊ด€์—†์ด ์ผ์ •ํ•œ ์‹œ๊ฐ„ ์†Œ์š”

ex) ์Šคํƒ์˜ Push / Pop

 

2. O(log N) : ๋กœ๊ทธ

์ž…๋ ฅ ๋ฐ์ดํ„ฐ์˜ ํฌ๊ธฐ๊ฐ€ ์ปค์งˆ์ˆ˜๋ก ์ฒ˜๋ฆฌ ์‹œ๊ฐ„ ๊ฐ์†Œ

ex) ์ด์ง„ํŠธ๋ฆฌ / ์ˆœ๊ธฐ๋Šฅ์œผ๋กœ ์ด๋ฃจ์–ด์ง€๋Š” ์žฌ๊ท€

 

3. O(N) : ์„ ํ˜•

์ž…๋ ฅ ๋ฐ์ดํ„ฐ์˜ ํฌ๊ธฐ์— ๋น„๋ก€ํ•ด ์ฒ˜๋ฆฌ ์‹œ๊ฐ„ ์ฆ๊ฐ€ (Nํฌ๊ธฐ๋งŒํผ ์ฒ˜๋ฆฌ ์‹œ๊ฐ„ ์ฆ๊ฐ€)

ex) for๋ฌธ

 

4. O(N log N) : ์„ ํ˜• ๋กœ๊ทธ

์ž…๋ ฅ ๋ฐ์ดํ„ฐ๊ฐ€ ๋งŽ์•„์งˆ์ˆ˜๋ก ์ฒ˜๋ฆฌ ์‹œ๊ฐ„์ด ๋กœ๊ทธ์˜ ๋ฐฐ๋งŒํผ ์ฆ๊ฐ€

ex) ํ€ต ์ •๋ ฌ(Quick Sort) / ํ•ฉ๋ณ‘ ์ •๋ ฌ(Merge Sort) / ํž™ ์ •๋ ฌ(Heap Sort)

 

5. O( N² ) : ๋‹คํ•ญ

์ž…๋ ฅ ๋ฐ์ดํ„ฐ๋ฅผ N๋งŒํผ ๋ฐ˜๋ณตํ•˜๊ณ  ๊ทธ ์•ˆ์—์„œ๋„ N๋งŒํผ ๋ฐ˜๋ณตํ•˜์—ฌ ์ฒ˜๋ฆฌ ์‹œ๊ฐ„์ด ๊ธ‰์ˆ˜์ ์œผ๋กœ ์ฆ๊ฐ€

ex) ์‚ฝ์ž… ์ •๋ ฌ(Insertion Sort) / ๋ฒ„๋ธ” ์ •๋ ฌ(Bubble Sort) / ์„ ํƒ ์ •๋ ฌ(Selection Sort) / ์ด์ค‘ for๋ฌธ

 

6. O( 2โฟ ) : ์ง€์ˆ˜

์ž…๋ ฅ ๋ฐ์ดํ„ฐ๊ฐ€ ๋งŽ์•„์งˆ์ˆ˜๋ก ์ฒ˜๋ฆฌ ์‹œ๊ฐ„์ด ๊ธฐํ•˜๊ธ‰์ˆ˜์ ์œผ๋กœ ์ฆ๊ฐ€

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


โ€ป ์ฐธ๊ณ  ์ž๋ฃŒ โ€ป

https://wikidocs.net/221191

 

+ Recent posts