ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Chap 1.3 Analysis of Algorithms
    ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์„ค๊ณ„ ๋ฐ ์‹ค์Šต 2025. 4. 5. 21:12

    ์™œ ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ๋ถ„์„ํ•ด์•ผ ํ• ๊นŒ?

    • ๊ฐ™์€ ๋ฌธ์ œ๋ฅผ ํ‘ธ๋Š” ์—ฌ๋Ÿฌ ์•Œ๊ณ ๋ฆฌ์ฆ˜์ด ์žˆ์„ ์ˆ˜ ์žˆ์Œ
    • ์–ด๋–ค ๊ฒŒ ๋” ๋น ๋ฅด๊ณ  ํšจ์œจ์ ์ธ์ง€๋ฅผ ํŒ๋‹จํ•˜๋ ค๋ฉด ๋ถ„์„ ํ•„์š”
    • ์‹ค์ œ ์ปดํ“จํ„ฐ ์„ฑ๋Šฅ, ์–ธ์–ด, ๊ตฌํ˜„ ๋ฐฉ๋ฒ•์— ๋”ฐ๋ผ ์‹คํ–‰ ์‹œ๊ฐ„์€ ๋‹ฌ๋ผ์ง€์ง€๋งŒ
      ์ด๋ก ์  ๋ถ„์„์€ ์ž…๋ ฅ ํฌ๊ธฐ n์— ๋”ฐ๋ฅธ ๊ฒฝํ–ฅ์„ฑ์„ ์•Œ๋ ค์คŒ

    ๐Ÿ“„ ์›๋ฌธ

    In general, a time complexity analysis of an algorithm is the determination of how
    many times the basic operation is done for each value of the input size.


    โœ… ํ•ด์„

    ์ผ๋ฐ˜์ ์œผ๋กœ, ์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ์‹œ๊ฐ„ ๋ณต์žก๋„ ๋ถ„์„์ด๋ž€
    ์ž…๋ ฅ ํฌ๊ธฐ์˜ ๊ฐ ๊ฐ’์— ๋Œ€ํ•ด ๊ธฐ๋ณธ ์—ฐ์‚ฐ์ด ๋ช‡ ๋ฒˆ ์ˆ˜ํ–‰๋˜๋Š”์ง€๋ฅผ ๊ตฌํ•˜๋Š” ๊ฒƒ์ด๋‹ค.


    ๋ถ„์„์˜ ๊ธฐ๋ณธ ๊ตฌ์„ฑ ์š”์†Œ

    ๊ตฌ์„ฑ์š”์†Œ ์˜๋ฏธ
    ์ž…๋ ฅ ํฌ๊ธฐ(input size) ๋ฌธ์ œ์˜ ํฌ๊ธฐ๋ฅผ ๋‚˜ํƒ€๋ƒ„ (ex: ๋ฐฐ์—ด์˜ ๊ธธ์ด n)
    ๊ธฐ๋ณธ ์—ฐ์‚ฐ(basic operation) ๋ถ„์„ ๋Œ€์ƒ์ด ๋˜๋Š” ๋ฐ˜๋ณต ์—ฐ์‚ฐ (ex: ๋น„๊ต, ๋ง์…ˆ ๋“ฑ)
    T(n) ์ž…๋ ฅ ํฌ๊ธฐ๊ฐ€ n์ผ ๋•Œ ๊ธฐ๋ณธ ์—ฐ์‚ฐ์˜ ์‹คํ–‰ ํšŸ์ˆ˜

    ์ž…๋ ฅ ํฌ๊ธฐ ์˜ˆ์‹œ

    • ๋ฐฐ์—ด์˜ ํ•ฉ ๊ณ„์‚ฐ: ์ž…๋ ฅ ํฌ๊ธฐ = ์›์†Œ ๊ฐœ์ˆ˜ n
    • ํ–‰๋ ฌ ๊ณฑ์…ˆ: ์ž…๋ ฅ ํฌ๊ธฐ = ํ–‰๋ ฌ ํฌ๊ธฐ n × n → ๊ทธ๋ƒฅ n์œผ๋กœ ์‚ฌ์šฉ
    • ํ”ผ๋ณด๋‚˜์น˜ ์ˆ˜ ๊ณ„์‚ฐ: ์ž…๋ ฅ์€ n, ํ•˜์ง€๋งŒ ์ž…๋ ฅ ํฌ๊ธฐ๋Š” logโ‚‚n์ด ๋  ์ˆ˜๋„ ์žˆ์Œ (์ •์ˆ˜์˜ ๋น„ํŠธ ์ˆ˜)

    ์‹œ๊ฐ„๋ณต์žก๋„ ์ข…๋ฅ˜

    ํ‘œ๊ธฐ ์˜๋ฏธ
    T(n) ๋ชจ๋“  ์ž…๋ ฅ์— ๋Œ€ํ•ด ํ•ญ์ƒ ๊ฐ™์€ ์—ฐ์‚ฐ ํšŸ์ˆ˜ → “every-case
    W(n) ๊ฐ€์žฅ ๋งŽ์€ ์—ฐ์‚ฐ → “์ตœ์•…(worst-case)
    A(n) ํ‰๊ท ์ ์ธ ์—ฐ์‚ฐ → “ํ‰๊ท (average-case)
    B(n) ๊ฐ€์žฅ ์ ์€ ์—ฐ์‚ฐ → “์ตœ์„ (best-case)

    ๐Ÿ” ์˜ˆ์‹œ ๋ถ„์„๋“ค


    ๐Ÿ”น [์˜ˆ์ œ] Algorithm 1.2 – Add Array Members

    sum ← 0  
    for i = 1 to n  
      sum ← sum + S[i]

     

    • ์ž…๋ ฅ ํฌ๊ธฐ: n
    • ๊ธฐ๋ณธ ์—ฐ์‚ฐ: ๋ง์…ˆ 1๋ฒˆ
    • ๋ฐ˜๋ณต ํšŸ์ˆ˜: n๋ฒˆ
    • T(n) = n

    ๐Ÿ”น [์˜ˆ์ œ] Algorithm 1.3 – Exchange Sort

    for i = 1 to n-1  
      for j = i+1 to n  
        if S[j] < S[i] then exchange

     

     

    • ๋น„๊ต ํšŸ์ˆ˜ ์ดํ•ฉ:(n−1)+(n−2)+...+1=n(n−1)2
    • T(n) = O(n²)

    ๐Ÿ”น [์˜ˆ์ œ] Algorithm 1.1 – Sequential Search

    • x๊ฐ€ ๋งจ ์•ž์— ์žˆ์œผ๋ฉด 1๋ฒˆ, ์—†์œผ๋ฉด n๋ฒˆ → ์ž…๋ ฅ์— ๋”ฐ๋ผ ๋‹ฌ๋ผ์ง
    • ๋”ฐ๋ผ์„œ T(n) ์—†์Œ, ๋Œ€์‹ :
    ๋ถ„์„ ๊ฒฐ๊ณผ
    W(n) n (x๊ฐ€ ๋งˆ์ง€๋ง‰ or ์—†์Œ)
    B(n) 1 (x๊ฐ€ ์ฒซ ๋ฒˆ์งธ ์›์†Œ)
    A(n)

    โš ๏ธ ํ‰๊ท  ๋ถ„์„ ์‹œ ์ฃผ์˜

    • ํ‰๊ท  = ๋Œ€ํ‘œ๊ฐ’์ด ์•„๋‹ˆ๋‹ค
      ์˜ˆ: ์‘๊ธ‰ ์‹œ์Šคํ…œ์ฒ˜๋Ÿผ ๋‹จ ํ•œ ๋ฒˆ์˜ ์˜ค๋ž˜ ๊ฑธ๋ฆฌ๋Š” ๊ฒฝ์šฐ๋„ ์œ„ํ—˜
    • ๊ทธ๋ž˜์„œ ์‹ค์ „์—์„œ๋Š” ํ‰๊ท ๋ณด๋‹ค ์ตœ์•… ๋ถ„์„(W(n))์ด ๋” ์ค‘์š”!!

    ํ‚ค์›Œ๋“œ ์ •๋ฆฌ

    ์šฉ์–ด ๋œป
    T(n) ๋ชจ๋“  ์ž…๋ ฅ์—์„œ ํ•ญ์ƒ ๊ฐ™์€ ์—ฐ์‚ฐ ํšŸ์ˆ˜
    W(n) ์ตœ์•…์˜ ๊ฒฝ์šฐ ์—ฐ์‚ฐ ํšŸ์ˆ˜
    A(n) ์ž…๋ ฅ์˜ ๋ถ„ํฌ๋ฅผ ๊ณ ๋ คํ•œ ํ‰๊ท  ์—ฐ์‚ฐ ํšŸ์ˆ˜
    B(n) ์ตœ์„ ์˜ ๊ฒฝ์šฐ ์—ฐ์‚ฐ ํšŸ์ˆ˜
    ๊ธฐ๋ณธ ์—ฐ์‚ฐ ๋น„๊ต, ๋ง์…ˆ ๋“ฑ ๋ฐ˜๋ณต๋˜๋Š” ์—ฐ์‚ฐ (๋ถ„์„ ๋Œ€์ƒ)
    ์ž…๋ ฅ ํฌ๊ธฐ ๋ฌธ์ œ๋ฅผ ์ •์˜ํ•˜๋Š” ๋ฐ์ดํ„ฐ์˜ ์–‘ (ex: ๋ฐฐ์—ด ํฌ๊ธฐ)

     

    ๋Œ“๊ธ€

Designed by Tistory.