티스토리 뷰
BST(Binary Search Tree, 이진 탐색 트리)
BST(Binary Search Tree, 이진 탐색 트리)는 이진 탐색 알고리즘을 트리에 적용한 자료구조입니다.
이진 탐색 트리의 정의는 다음과 같습니다.
- 노드에 저장된 Key(키)는 유일하다.
- 루트 노드의 키가 왼쪽 서브 트리를 구성하는 어떠한 노드의 키보다 크다.
- 루트 노드의 키가 오른쪽 서브 트리를 구성하는 어떠한 노드의 키보다 크다.
- 왼쪽과 오른쪽 서브 트리도 이진 탐색 트리이다.
이진 탐색 트리의 탐색 연산은 O(log n)의 time complexity를 갖습니다.
이진 탐색 트리의 높이는 log (n + 1)이기 때문입니다.
하지만 이진 탐색 트리가 한 쪽으로 편향되어 있다면(Skewed Tree, 편향 트리) time complexity의 worst case가 O(n)이 됩니다.
이를 해결하기 위해 Rebalancing 기법이 등장했습니다.
Rebalancing은 트리 구조를 균형있게 재조정하는 기법입니다.
Red-Black Tree는 이 기법을 구현한 트리입니다.
추후에 살펴보도록 하겠습니다.
'Dev.Basic > 자료구조' 카테고리의 다른 글
Binary Heap(이진 힙) (3) | 2019.10.14 |
---|---|
Tree(트리) (0) | 2019.10.12 |
Stack(스택) & Queue(큐) (14) | 2019.10.10 |
Array(배열) VS LinkedList(연결 리스트) (0) | 2019.10.10 |
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- 자료구조
- count
- ec2
- 깊이우선탐색
- 스위프트
- Programmers
- 컬렉션
- 이진트리
- 백준
- c++
- Swift
- 코딩테스트
- algorithm
- 구슬탈출
- SummerCoding
- Xcode
- 시뮬레이션
- aws
- dp
- ios
- dfs
- datastructure
- 호제법
- 알고리즘
- isempty
- 삼성역량테스트
- 프로그래머스
- 서머코딩
- BFS
- Collection
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
글 보관함