- μμ½λ
- Python
- λ€μ΅μ€νΈλΌ
- golang
- λ°±μ€
- DFS
- κ°μ₯κ°κΉμ΄κ³΅ν΅μ‘°μ
- μν°λ
- Union-Find
- ν리μ¨λ³΄λ©
- js
- μ¬κ·
- LCs
- μΉλ¦°μ΄
- C++
- μ΄λΆνμ
- λΉνΈλ§μ€νΉ
- μ¬λΌμ΄λ© μλμ°
- νΈλ¦¬
- λΉνΈλ§΅
- μΉ΄μΉ΄μ€ μ½ν
- μΉ΄μΉ΄μ€2021
- BFS
- nestjs
- λμ νλ‘κ·Έλλ°
- DP
- μκ³ λ¦¬μ¦
- go
- νλ‘κ·Έλλ¨Έμ€
- λ°±μλ ν리μ¨λ³΄λ©
- Today
- Total
Hello Ocean! πΌ
[CS/μλ£κ΅¬μ‘°] μ΄μ§ νμ νΈλ¦¬ (BST) λ³Έλ¬Έ
Binary Search Tree(μ΄μ§ νμ νΈλ¦¬)λ?
μ΄μ§ νμ + μ°κ²° 리μ€νΈλ₯Ό κ²°ν©ν μλ£κ΅¬μ‘°μ μΌμ’
μ΄μ§ νμμ ν¨μ¨μ μΈ νμ λ₯λ ₯ + λΉλ²ν μ½μ /μμ κ°λ₯νλλ‘ κ³ μ
μ΄μ§ νμ 볡μ‘λ : O(logN)
μ°κ²°λ¦¬μ€νΈμ μ½μ /μμ 볡μ‘λ : O(1)
μμ±
κ° λ Έλμ μΌμͺ½ μλΈνΈλ¦¬μλ ν΄λΉ λ Έλμ κ°λ³΄λ€ μμ κ°μ κ°μ§ λ Έλλ€λ‘,
κ° λ Έλμ μ€λ₯Έμͺ½ μλΈνΈλ¦¬μλ ν΄λΉ λ Έλμ κ°λ³΄λ€ ν° κ°μ λ Έλλ€λ‘ ꡬμ±λμ΄ μμ΅λλ€.
μ€λ³΅λλ λ Έλλ μμ΄μΌ νλ©°, μΌμͺ½ μλΈνΈλ¦¬, μ€λ₯Έμͺ½ μλΈνΈλ¦¬ λν μ΄μ§νμνΈλ¦¬μ λλ€.
μνμμλ μ€μμν λ°©μμ μ¬μ©νλ©΄, μ΄μ§νμνΈλ¦¬ λ΄μ λͺ¨λ κ°λ€μ μ λ ¬λ μμΌλ‘ μ½μ μ μμ΅λλ€.
- μ€μ μν : μΌμͺ½ νμ νΈλ¦¬ -> root -> μ€λ₯Έμͺ½ νμνΈλ¦¬
μ°μ°
κ²μ / μ½μ / μμ
μμ± / μμ / isEmpty / μν
- μ½μ O(h)λ² νμ ν μ½μ νκΈ΄ νμ§λ§, μ½μ μ κ³μ°λ³΅μ‘λλ O(1)μ΄λΌ 무μν λ§νλ€
- νμ 리νλ Έλμ μ½μ
- κ²μ
- μκ° λ³΅μ‘λ : O(h) (νΈλ¦¬μ λμ΄ :h)
- μμ
- κ·Έλ₯ μμ νλ©΄λ¨
2) μμλ Έλκ° ν κ°μΈ κ²½μ° - ν΄λΉ λ
Έλλ₯Ό μ§μ°κ³ , ν΄λΉ λ
Έλμ λΆλͺ¨μ, ν΄λΉ λ
Έλμ μμμ μ°κ²°ν΄μ£Όλ©΄ λ¨
3) μμλ Έλκ° λ κ°μΈ κ²½μ° - μΌμͺ½ μλΈνΈλ¦¬μ κ°μ₯ μ€λ₯Έμͺ½ λ Έλ (μΌμͺ½ μλΈνΈλ¦¬μμ κ°μ₯ μμ κ°)
- μ€λ₯Έμͺ½ μλΈνΈλ¦¬μ κ°μ₯ μΌμͺ½ λ Έλ (μ€λ₯Έμͺ½ μλΈνΈλ¦¬μμ κ°μ₯ ν° κ°)
- μ€μ μνλ κ±Έλ‘ μμ ν λ Έλλ₯Ό λ체ν΄μ£Όλ©΄ λλ€.
- κ·Έλ₯ μμ νλ©΄λ¨
- 1) μμλ Έλκ° μλ κ²½μ°
νκ³μ
μ΄μ§νμνΈλ¦¬ ν΅μ¬ μ°μ°μΈ νμ/μ½μ /μμ μ 볡μ‘λλ λͺ¨λ O(h) λ‘, νΈλ¦¬μ λμ΄μ λ°λΌ μνμκ°μ΄ κ²°μ λλ ꡬ쑰μ λλ€.
κ·Έλμ λͺ¨λ λ Έλκ° ν κ°μ 리νλ Έλλ₯Ό κ°μ§λ νΈλ¦¬μΈ κ²½μ°μλ λ Έλ μμ, νΈλ¦¬μ λμ΄κ° μΌμΉνκ² λμ΄ μ°μ°μ μκ° λ³΅μ‘λκ° O(N)μ΄ λκ² λ©λλ€.
μ΄λ κ² λλ©΄ λΉ λ₯΄λ€κ³ λ³Ό μ μκΈ° λλ¬Έμ, μ 체 κ· νμ λ§μΆλ μ΄μ§ νμνΈλ¦¬μ μΌμ’ μΈ AVL treeκ° μ μλμμ΅λλ€.
** AVLνΈλ¦¬ μ 리 μμ
μμ½
μ΄μ§νμνΈλ¦¬λ μ΄μ§νμκ³Ό μ°κ²°λ¦¬μ€νΈλ₯Ό κ²°ν©ν μλ£κ΅¬μ‘°μ μΌμ’ μΌλ‘,
ν¨μ¨μ μΈ νμ λ° λΉλ²ν μ½μ /μμ κ° κ°λ₯νλλ‘ κ³ μλ μλ£κ΅¬μ‘°μ λλ€.
κ° λ Έλμ μΌμͺ½ μλΈνΈλ¦¬μλ ν΄λΉ λ Έλμ κ°λ³΄λ€ μμ λ Έλλ€λ‘,
κ° λ Έλμ μ€λ₯Έμͺ½ μλΈνΈλ¦¬μλ ν΄λΉ λ Έλμ κ°λ³΄λ€ ν° λ Έλλ€λ‘ ꡬμ±λμ΄ μκ³
μΌμͺ½ μ€λ₯Έμͺ½ μλΈνΈλ¦¬ λν λͺ¨λ μ΄μ§νμνΈλ¦¬μ λλ€.
** O(h) -> O(logn)μΌλ‘ νν
μ΄μ§ νμνΈλ¦¬μμ νμ μκ° λ³΅μ‘λλ νΈλ¦¬μ λμ΄κ° hμΌ λO(h)κ° λ©λλ€.
μ½μ μμλ, νμ 리νλ Έλμ μ½μ νλ©° O(h)λ² νμ ν μ½μ νκΈ° λλ¬Έμ μκ°λ³΅μ‘λλ νμκ³Ό λ§μ°¬κ°μ§λ‘ O(h)μ λλ€.
μμ λ ν¬κ² μΈ κ°μ§ κ²½μ°λ‘ ꡬλΆν μ μλλ°
λ¨Όμ μμλ Έλκ° μλ κ²½μ°μλ κ·Έλ₯ μμ νλ©΄ λκ³
μμλ Έλκ° νκ°μΌ κ²½μ°μλ μμ νλ €λ λ Έλμ λΆλͺ¨μ μμμ μ°κ²°ν΄μ£Όκ³ ν΄λΉ λ Έλλ₯Ό μμ νλ©΄ λ©λλ€.
μμλ Έλκ° λ κ°μΌ κ²½μ°μλ,
μΌμͺ½ μλΈνΈλ¦¬μμ κ°μ₯ μμκ° νΉμ μ€λ₯Έμͺ½ μλΈνΈλ¦¬μμ κ°μ₯ ν° κ°μ μ°Ύμ
λ μ€μ μνλ λ Έλλ‘ μμ ν λ Έλλ₯Ό λ체ν΄μ£Όλ©΄ λ©λλ€.
μ΄μ§ νμνΈλ¦¬μ νκ³μ μ, μ€μ μ°μ°λ€μ μκ°λ³΅μ‘λκ° νΈλ¦¬μ λμ΄μ κ΄λ ¨μ΄ μκΈ° λλ¬Έμ
λͺ¨λ λ Έλκ° ν κ°μ 리νλ Έλλ₯Ό κ°μ§λ κ²½μ°μλ λ Έλμμ νΈλ¦¬ λμ΄κ° μΌμΉνκ² λμ΄ μκ°λ³΅μ‘λκ° O(N)μ΄ λ©λλ€.
'Algorithm' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
[λ°±μ€/Python] 20040. μ¬μ΄ν΄ κ²μ (0) | 2021.10.12 |
---|---|
[CS/μκ³ λ¦¬μ¦] κ±°μ μ λ ¬λ Listμμ μ΄λ€ μ λ ¬μ΄ κ°μ₯ ν¨μ¨μ μΌκΉ? (0) | 2021.10.09 |
[λ°±μ€/Python] 1501. μμ΄ μ½κΈ° (0) | 2021.10.06 |
[λ°±μ€/Python] 12757. μ μ€μ JBNU (0) | 2021.10.06 |
[λ°±μ€/C++] 4195. μΉκ΅¬ λ€νΈμν¬ (0) | 2021.09.28 |