πŸ—οΈ Algorithm/🟦 이것이 취업을 μœ„ν•œ μ½”λ”©ν…ŒμŠ€νŠΈ

[이것이 취업을 μœ„ν•œ μ½”λ”© ν…ŒμŠ€νŠΈ] 트리 자료ꡬ쑰

Dbswnstjd 2022. 2. 17. 20:20

트리 자료ꡬ쑰

트리 자료 ꡬ쑰

μ•žμ„œ λ§ν•œ 이진 탐색은 μ „μ œ 쑰건이 데이터가 μ •λ ¬λ˜μ–΄ μžˆμ–΄μ•Ό ν•œλ‹€. 예λ₯Ό λ“€μ–΄ λ™μž‘ν•˜λŠ” ν”„λ‘œκ·Έλž¨μ—μ„œ 데이터λ₯Ό μ •λ ¬ν•΄λ‘λŠ” κ²½μš°κ°€ λ§ŽμœΌλ―€λ‘œ 이진 탐색을 효과적으둜 μ‚¬μš©ν•  수 μžˆλ‹€. λ°μ΄ν„°λ² μ΄μŠ€λŠ” λ‚΄λΆ€μ μœΌλ‘œ λŒ€μš©λŸ‰ 데이터 μ²˜λ¦¬μ— μ ν•©ν•œ 트리(tree) 자료ꡬ쑰λ₯Ό μ΄μš”ν•˜μ—¬ 항상 데이터가 μ •λ ¬λ˜μ–΄ μžˆλ‹€. λ”°λΌμ„œ λ°μ΄ν„°λ² μ΄μŠ€μ—μ„œμ˜ 탐색은 이진 νƒμƒ‰κ³ΌλŠ” 쑰금 λ‹€λ₯΄μ§€λ§Œ, 이진 탐색과 μœ μ‚¬ν•œ 방법을 μ΄μš©ν•΄ 탐색을 항상 λΉ λ₯΄κ²Œ μˆ˜ν–‰ν•˜λ„λ‘ μ„€κ³„λ˜μ–΄ μžˆμ–΄μ„œ 데이터가 λ§Žμ•„λ„ νƒμƒ‰ν•˜λŠ” 속도가 λΉ λ₯΄λ‹€.

 

트리 μžλ£Œκ΅¬μ‘°λž€ 무엇인가?

트리 μžλ£Œκ΅¬μ‘°λŠ” λ…Έλ“œμ™€ λ…Έλ“œμ˜ μ—°κ²°λ£Œ ν‘œν˜„ν•˜λ©° μ—¬κΈ°μ—μ„œ λ…Έλ“œλŠ” μ •λ³΄μ˜ λ‹¨μœ„λ‘œμ„œ μ–΄λ– ν•œ 정보λ₯Ό 가지고 μžˆλŠ” 개체둜 이해할 수 μžˆλ‹€. κ·Έλž˜ν”„λ₯Ό λ‹€λ£° λ•Œ λ‚˜μ˜¨ λ…Έλ“œμ™€ λ™μΌν•˜λ‹€. μ΅œλ‹¨ κ²½λ‘œμ—μ„œλŠ” λ…Έλ“œκ°€ 'λ„μ‹œ'와 같은 μ •μ μ˜ 의미λ₯Ό 가진닀.ㅏ 트리 μžλ£Œκ΅¬μ‘°λŠ” κ·Έλž˜ν”„ 자료ꡬ쑰의 μΌμ’…μœΌλ‘œ 데이터 베이슀 μ‹œμŠ€ν…œμ΄λ‚˜ 파일 μ‹œμŠ€ν…œκ³Ό 같은 κ³³μ—μ„œ λ§Žμ€ μ–‘μ˜ 데이터λ₯Ό κ΄€λ¦¬ν•˜κΈ° μœ„ν•œ λͺ©μ μœΌλ‘œ μ‚¬μš©ν•œλ‹€. 트리 μžλ£Œκ΅¬μ‘°λŠ” λͺ‡κ°€μ§€ μ£Όμš”ν•œ νŠΉμ§•μ΄ μžˆλ‹€. 

트리 자료ꡬ쑰

  • νŠΈλ¦¬λŠ” λΆ€λͺ¨λ…Έλ“œμ™€ μžμ‹ λ…Έλ“œμ˜ κ΄€κ³„λ‘œ ν‘œν˜„λœλ‹€.
  • νŠΈλ¦¬λŠ” μ΅œμƒλ‹¨ λ…Έλ“œλ₯Ό 루트 λ…Έλ“œλΌκ³  ν•œλ‹€.
  • νŠΈλ¦¬λŠ” μ΅œν•˜λ‹¨ λ…Έλ“œλ₯Ό 단말 λ…Έλ“œλΌκ³  ν•œλ‹€. 
  • νŠΈλ¦¬μ—μ„œ 일뢀λ₯Ό 떼어내도 트리 ꡬ쑰이며 이λ₯Ό μ„œλΈŒ 트리라 ν•œλ‹€.
  • νŠΈλ¦¬λŠ” 파일 μ‹œμŠ€ν…œκ³Ό 같이 계측적이고 μ •λ ¬λœ 데이터λ₯Ό 닀루기에 μ ν•©ν•˜λ‹€.

μ •λ¦¬ν•˜μžλ©΄ 큰 데이터λ₯Ό μ²˜λ¦¬ν•˜λŠ” μ†Œν”„νŠΈμ›¨μ–΄λŠ” λŒ€λΆ€λΆ„ 데이터λ₯Ό 트리 자료ꡬ쑰둜 μ €μž₯ν•˜μ—¬ 이진 탐색과 같은 탐색 기법을 μ΄μš©ν•΄ λΉ λ₯΄κ²Œ 탐색이 κ°€λŠ₯ν•˜λ‹€. 

 

μ΄λŸ¬ν•œ 트리 ꡬ쑰λ₯Ό μ΄μš©ν•˜μ—¬ μ •ν™•νžˆ μ–΄λ– ν•œ λ°©μ‹μœΌλ‘œ 항상 이진 탐색이 κ°€λŠ₯ ν•œ 것인지 μ•Œμ•„λ³΄μž

이진 탐색 트리

트리 자료ꡬ쑰 쀑 κ°€μž₯ κ°„λ‹¨ν•œ ν˜•νƒœκ°€ 이진 탐색 νŠΈλ¦¬μ΄λ‹€. 이진 탐색 νŠΈλ¦¬λž€ 이진 탐색이 λ™μž‘ ν•  수 μžˆλ„λ‘ κ³ μ•ˆλœ, 효율적인 탐색이 κ°€λŠ₯ν•œ μžλ£Œκ΅¬μ‘°μ΄λ‹€. 

이진 탐색 트리

  • λΆ€λͺ¨ λ…Έλ“œλ³΄λ‹€ μ™Όμͺ½ μžμ‹ λ…Έλ“œκ°€ μž‘λ‹€.
  • λΆ€λͺ¨ λ…Έλ“œλ³΄λ‹€ 였λ₯Έμͺ½ μžμ‹ λ…Έλ“œκ°€ 크닀. 

μ’€ 더 κ°„λ‹¨ν•˜κ²Œ ν‘œν˜„ν•˜λ©΄ μ™Όμͺ½ μžμ‹ λ…Έλ“œ< λΆ€λͺ¨ λ…Έλ“œ < 였λ₯Έμͺ½ μžμ‹ λ…Έλ“œκ°€ 성립해야 이진 탐색 트리라 ν•  수 μžˆλ‹€. 

이진 탐색 νŠΈλ¦¬μ— 데이터λ₯Ό λ„£κ³  λΉΌλŠ” 방법은 μ•Œκ³ λ¦¬μ¦˜λ³΄λ‹€λŠ” μžλ£Œκ΅¬μ‘°μ— 가깝닀.