[자료ꡬ쑰] 1. μžλ£Œκ΅¬μ‘°λž€ 무엇인가

1. μžλ£Œμ™€ μ •λ³΄μ˜ 관계

자료(Data)

  • ν˜„μ‹€ μ„Έκ³„μ—μ„œ κ΄€μ°°μ΄λ‚˜ 츑정을 톡해 μˆ˜μ§‘λœ κ°’(Value) μ΄λ‚˜ 사싀(Fact).

정보(Information)

  • μ μ ˆν•œ μ˜μ‚¬κ²°μ •(decision)을 ν•  수 μžˆλ„λ‘ ν•˜λŠ” 지식(knowledge) μœΌλ‘œμ„œ, 자료의 μœ νš¨ν•œ ν•΄μ„€(interpretation)μ΄λ‚˜ 자료 μƒν˜Έκ΄€μ˜ 관계(relationship) 을 ν‘œν˜„ν•˜λŠ” λ‚΄μš©

자료 β‡’ 처리(컴퓨터) β‡’ 정보 I = P(D)


2. μΆ”μƒν™”μ˜ κ°œλ…

좔상화

  • 곡톡적인 κ°œλ…μ„ μ΄μš©ν•˜μ—¬ 같은 μ’…λ₯˜μ˜ λ‹€μ–‘ν•œ 객체λ₯Ό μ •μ˜ν•˜λŠ” 것


3. 자료ꡬ쑰의 κ°œλ…

자료ꡬ쑰(Data Structure) λž€?

  • 자료 μ‚¬μ΄μ˜ 논리적 관계λ₯Ό μ»΄ν“¨ν„°λ‚˜ ν”„λ‘œκ·Έλž¨μ— μ μš©ν•˜κΈ° μœ„ν•΄ μ‹€μ‹œν•˜λŠ” 자료의 좔상화

μ•Œκ³ λ¦¬μ¦˜

  • 컴퓨터가 μ–΄λ–€ μˆ˜ν–‰μ„ μ‹€μ‹œν•˜κΈ° μœ„ν•΄ ν•„μš”ν•œ λͺ…λ Ήμ˜ 집합

λ³΅μž‘ν•œ 데이터와 μ•Œκ³ λ¦¬μ¦˜μ„ μ΄μš©ν•˜κΈ° μœ„ν•΄ μ •λ°€ν•œ 자료ꡬ쑰 섀계가 ν•„μš”ν•˜λ‹€ 개발자 β†’ 좔상화 β†’ 자료ꡬ쑰 ← ꡬ체화 ← 컴퓨터

자료ꡬ쑰의 ν˜•νƒœ

  • μ–Έμ–΄μ—μ„œ μ œκ³΅ν•˜λŠ” '미리 μ •μ˜λœ 자료ꡬ쑰'
    • κΈ°λ³Έ 자료ꡬ쑰
      • μ •μˆ˜
      • μ‹€μˆ˜
      • 문자
      • λ“±..
    • νŒŒμƒλœ 자료ꡬ쑰
      • λ°°μ—΄
      • ꡬ쑰체
      • 포인터
      • λ“±..

  • κ°œλ°œμžκ°€ ν•„μš”μ— μ˜ν•΄ μ •μ˜ν•˜λŠ” 'μ‚¬μš©μž μ •μ˜ 자료ꡬ쑰'
    • 리슀트
    • 트리
    • μŠ€νƒ
    • 큐
    • κ·Έλž˜ν”„
    • λ“±..


4. μžλ£Œκ΅¬μ‘°μ™€ μ•Œκ³ λ¦¬μ¦˜μ˜ 관계 및 μ•Œκ³ λ¦¬μ¦˜μ˜ νŠΉμ„±

좔상화 된 μ•Œκ³ λ¦¬μ¦˜μ˜ μ˜ˆμ‹œ

  • μ§‘μ—μ„œ 학ꡐ에 κ°€κΈ° μ•Œκ³ λ¦¬μ¦˜
    1. μ§‘μ—μ„œ 좜발
    1. 차에 탄닀
    1. μ°¨μ—μ„œ λ‚΄λ¦°λ‹€
    1. κ°•μ˜μ‹€μ— λ“€μ–΄κ°„λ‹€

μ•Œκ³ λ¦¬μ¦˜μ€ 좔상화 μ‹œν‚¨ λ™μž‘λ“€μ˜ 연속

μ•Œκ³ λ¦¬μ¦˜μ΄ 가지고 μžˆμ–΄μ•Ό ν•˜λŠ” 쑰건

  1. 좜λ ₯ : 적어도 ν•œ 가지 μ΄μƒμ˜ κ²°κ³Όλ₯Ό 생성해야 ν•œλ‹€.
  1. μœ νš¨μ„± : λͺ¨λ“  λͺ…령은 μ‚¬λžŒμ΄ μˆ˜ν–‰ν•˜λ‚˜ 컴퓨터가 μˆ˜ν–‰ν•˜λ‚˜ 같은 κ²°κ³Όκ°€ λ‚˜μ™€μ•Ό ν•œλ‹€(μ†λ„μ˜ 차이일 뿐)
  1. μž…λ ₯ : μ™ΈλΆ€μ—μ„œ μž…λ ₯λ˜λŠ” μžλ£Œκ°€ μžˆμ„ 수 μžˆλ‹€.
  1. λͺ…ν™•μ„± : 각 λͺ…령은 λͺ…ν™•ν•˜κ³  애맀λͺ¨ν˜Έ ν•˜μ§€ μ•Šμ•„μ•Ό ν•œλ‹€
  1. μœ ν•œμ„± : μ–Έμ  κ°€λŠ” λλ‚˜μ•Ό ν•œλ‹€


5. μ•Œκ³ λ¦¬μ¦˜ μ„±λŠ₯의 뢄석과 μΈ‘μ •

5.1 μ•Œκ³ λ¦¬μ¦˜ μ‹€ν–‰ μ‹œκ°„μ˜ 예츑

  • μ•Œκ³ λ¦¬μ¦˜ μ‹€ν–‰ μ˜ˆμΈ‘μ‹œκ°„ O(n)O(n)ο»Ώ 은 κ²½ν–₯성에 λŒ€ν•œ μ˜ˆμΈ‘μ΄λ‹€.

    (λͺ¨λ“  μ•Œκ³ λ¦¬μ¦˜μ΄ κ°œλ³„μ μœΌλ‘œ λ‹€λ₯Έ μ‹€ν–‰ 횟수λ₯Ό 가지기 λ•Œλ¬Έμ— μ •ν™•ν•œ μ‹œκ°„μ„ μ˜λ―Έν•˜λŠ”κ²ƒμ΄ μ•„λ‹˜)

5.2 μ‹€ν–‰ λ©”λͺ¨λ¦¬μ˜ 예츑

  • μ•Œκ³ λ¦¬μ¦˜μ˜ 곡간 λ³΅μž‘λ„(space complexity)λŠ” ν”„λ‘œκ·Έλž¨μ„ μ‹€ν–‰μ‹œμΌœ μ™„λ£Œν•˜λŠ”λ° ν•„μš”ν•œ 총 λ©”λͺ¨λ¦¬ 곡간을 μ˜λ―Έν•œλ‹€.
πŸ’‘
Sp=Sc+SeS_p = S_c + S_eο»Ώ

  • SpS_pο»Ώ (Space for Program) : μ–΄λ–€ ν”„λ‘œκ·Έλž¨ P의 μˆ˜ν–‰μ— ν•„μš”ν•œ 총 λ©”λͺ¨λ¦¬ 곡간
  • ScS_cο»Ώ (Space for Compile) : ν”„λ‘œκ·Έλž¨ ν¬κΈ°λ‚˜ μž…μΆœλ ₯ νšŸμˆ˜μ— 상관없이 μ»΄νŒŒμΌν•  λ•Œ κ²°μ •λ˜μ–΄ μ’…λ£Œλ  λ•Œ κΉŒμ§€ κ³ μ •μ μœΌλ‘œ ν•„μš”ν•œ λ©”λͺ¨λ¦¬ 곡간 (κ³ μ • 곡간)
  • SeS_eο»Ώ (Space for Excution) : ν”„λ‘œκ·Έλž¨μ˜ μ‹€ν–‰ κ³Όμ •μ—μ„œ λ™μ μœΌλ‘œ ν• λ‹Ήλ˜μ–΄μ•Ό ν•˜λŠ” μžλ£Œκ΅¬μ‘°μ™€ λ³€μˆ˜λ“€μ„ μœ„ν•΄ ν•„μš”ν•œ 메인 λ©”λͺ¨λ¦¬ 곡간 (κ°€λ³€ 곡간)

μ•Œκ³ λ¦¬μ¦˜μ— ν•„μš”ν•œ λ©”λͺ¨λ¦¬ μ΄λŸ‰μ„ κ³ λ €ν•΄μ•Ό 함

5.3 μ‹€ν–‰ μ‹œκ°„μ˜ μΈ‘μ •

  • μ‹€μ œ μ‹œκ°„μ˜ μΈ‘μ •