자료ꡬ쑰/πŸ‘‰μ•Œκ³ λ¦¬μ¦˜ - 16

였늘 듀은 κ°•μ˜ λͺ©λ‘

  1. μˆœμ°¨νƒμƒ‰
  2. κ·Έλž˜ν”„ 이해
  3. κ·Έλž˜ν”„ μ’…λ₯˜

μ•žμ—μ„œλΆ€ν„° ν•˜λ‚˜ν•˜λ‚˜ μ§šμ–΄κ°€λ©° νƒμƒ‰ν•˜λŠ” 방법
(νƒμƒ‰ν• λ•Œ, μ•Œκ³ λ¦¬μ¦˜μ„ λͺ¨λ₯΄λŠ” μƒνƒœμ—μ„œλ„ κ°€μž₯ λ¨Όμ € λ– μ˜€λ₯΄λŠ” μžμ—°μŠ€λŸ¬μš΄ 방법)

μ‹œκ°„λ³΅μž‘λ„ : $O(n)$
n개의 μš”μ†Œλ₯Ό λͺ¨λ‘ μ§šμ–΄λ³΄κΈ°λ•Œλ¬Έ

μˆœμ°¨νƒμƒ‰ κ΅¬ν˜„

def SequentialSearch(list, value):
    for e in list:
        if e == value:
            return True
    return False

κ²°κ³Ό

λ¦¬μŠ€νŠΈμ—μ„œ ν•˜λ‚˜μ”© μ§šμ–΄κ°€λ©° νƒμƒ‰ν•˜λ„λ‘ κ΅¬ν˜„ν–ˆλ‹€.

μˆœμ°¨νƒμƒ‰ κ΅¬ν˜„ (인덱슀 λ°˜ν™˜)

def SequentialSearch(list, value):
    for i in range(len(list)):
        if list[i] == value:
            return i
    return -1

μ΄λ²ˆμ—λŠ” 데이터가 μ‘΄μž¬ν•˜λŠ” 인덱슀λ₯Ό λ°˜ν™˜ν•˜λ„λ‘ λ³€κ²½ν–ˆλ‹€.
인덱슀λ₯Ό λ°˜ν™˜ν•΄μ•Όν•˜λ―€λ‘œ rangeλ₯Ό 톡해 0번 μΈλ±μŠ€λΆ€ν„° νƒμƒ‰ν•˜κ³ , 데이터가 μ‘΄μž¬ν•˜λŠ” 경우 ν•΄λ‹Ή 인덱슀λ₯Ό λ°˜ν™˜ν•˜λ„λ‘ ν–ˆλ‹€.
그리고 μ‘΄μž¬ν•˜μ§€ μ•ŠλŠ” 경우 -1을 λ°˜ν™˜ν•˜λ„λ‘ ν–ˆλ‹€.
μΈλ±μŠ€λŠ” 0λΆ€ν„° μ‹œμž‘ν•˜λ―€λ‘œ 0보닀 μž‘μ€ 값인 -1으둜 κ²°μ •ν–ˆλ‹€.

κ·Έλž˜ν”„

μ‹€μ œ μ„Έκ³„μ˜ ν˜„μƒμ΄λ‚˜ 사물을 정점(Vertex)μ΄λ‚˜ λ…Έλ“œ(Node)와 κ°„μ„ (Edge)둜 이루어진 ꡬ쑰

κ·Έλž˜ν”„

μš©μ–΄

κΈ°λ³Έμš©μ–΄

  • λ…Έλ“œ(Node) : μœ„μΉ˜λ₯Ό λœ»ν•¨. 정점(Vertex)이라고도 함
    μœ„ μ‚¬μ§„μ—μ„œ λ…Έλ“œλŠ” [μ§‘, μ§€ν•˜μ² , λ²„μŠ€, νšŒμ‚¬]
  • κ°„μ„ (Edge) : 각 λ…Έλ“œλ“€μ„ μž‡λŠ” μ„ . link, branch라고도 함
    μœ„ μ‚¬μ§„μ—μ„œ 간선은 μ„ λ“€

λŒ€μΆ©μ€ μ•Œμ•„μ•Όν•˜λŠ” μš©μ–΄

  • 인접 정점/λ…Έλ“œ(Adjacent Vertex) : κ°„μ„ μœΌλ‘œ 직접 μ—°κ²°λœ 정점/λ…Έλ“œ
    μœ„ μ‚¬μ§„μ—μ„œ μ§‘μ˜ μΈμ ‘λ…Έλ“œλ“€μ€ μ§€ν•˜μ² κ³Ό λ²„μŠ€
  • μ •μ μ˜ 차수(Degree) : 무방ν–₯ κ·Έλž˜ν”„μ—μ„œ μ–΄λ–€ 정점에 μΈμ ‘ν•œ μ •μ μ˜ 수 μœ„ μ‚¬μ§„μ—μ„œ 간선듀이 λ°©ν–₯성을 λ„μ§€μ•Šμ„λ•Œ, λ…Έλ“œ μ§‘μ˜ μ°¨μˆ˜λŠ” 2μ°¨
  • μ§„μž… 차수(In-Degree) : λ°©ν–₯ κ·Έλž˜ν”„μ—μ„œ μ–΄λ–€ 정점에 μ™ΈλΆ€μ—μ„œ μ˜€λŠ” κ°„μ„ μ˜ 수
    μœ„ μ‚¬μ§„μ—μ„œ μ§€ν•˜μ² μ˜ μ§„μž… μ°¨μˆ˜λŠ” 1, μ§‘μ˜ μ§„μž… μ°¨μˆ˜λŠ” 0
  • μ§„μΆœ 차수(Out-Degree) : λ°©ν–₯ κ·Έλž˜ν”„μ—μ„œ μ™ΈλΆ€λ‘œ λ‚˜κ°€λŠ” κ°„μ„ μ˜ 수
    μœ„ μ‚¬μ§„μ—μ„œ μ§€ν•˜μ² μ˜ μ§„μΆœ νƒ€μˆ˜λŠ” 1, μ§‘μ˜ μ§„μΆœ μ°¨μˆ˜λŠ” 2

μ—¬κΈ°κΉŒμ§€λŠ” μ•Œλ©΄ μ’‹κ² λ‹€ ν•˜λŠ” μš©μ–΄

  • 경둜 길이(Path Length) : 경둜λ₯Ό κ΅¬μ„±ν•˜κΈ° μœ„ν•œ κ°„μ„ μ˜ 수
  • λ‹¨μˆœ 경둜 : μ€‘λ³΅λ˜λŠ” λ…Έλ“œκ°€ μ—†λŠ” 경둜
  • 사이클(Cycle) : λ‹¨μˆœ 경둜의 μ‹œμž‘ 정점과 μ’…λ£Œ 정점이 λ™μΌν•œ 경우λ₯Ό 말함

경둜, λ‹¨μˆœκ²½λ‘œ

μ•„λž˜ 사진은 A-B-C둜 이루어진 κ·Έλž˜ν”„λ‹€.

Aμ—μ„œ C둜 κ°€λŠ” κ²½λ‘œλŠ” A->B->Cκ°€ 되고,
Aμ—μ„œ C둜 κ°€λŠ” 경둜 사이에 μ€‘λ³΅λ˜λŠ” λ…Έλ“œκ°€ μ—†μœΌλ―€λ‘œ, λ‹¨μˆœκ²½λ‘œκ°€ λœλ‹€.

경둜

λ§ˆμ§€λ§‰

μ˜€λŠ˜μ€ κ°•μ˜λ₯Ό λ‘κ°œλ§Œ λ΄μ„œ κ·ΈλŸ°μ§€ λ‚΄μš©μ΄ μ’€ 적닀.
μš”μ¦˜ μ§‘μ˜€λ©΄ λ„ˆλ¬΄ ν”Όκ³€ν•΄μ„œ λ”± ν•„μš”ν•œ 만큼만 μ κ³ μžˆλŠ”λ°
κ·Έλž˜μ„œμΈμ§€ 슀슀둜 λ§Œμ‘±μ„ λͺ»ν•˜κ³ μžˆλ‹€.

피곀함 > λ‚΄μš©μ„ μ€„μž„ > 만쑱 λͺ»ν•¨ > λ‚΄μš© 채움 > λ‹€μŒλ‚  더 피곀함 > λ‚΄μš©μ„ μ€„μž„
λŒ€μΆ© 이런 사이클..γ… γ… 

λŒ“κΈ€λ‚¨κΈ°κΈ°