B-Tree
균형 이진 트리중 하나로 트리간의 균형을 유지한다
이진 탐색 트리의 단점인 최악의 경우 선형 탐색 시간을 가진다는 단점을 보완하기 위해 개발이 되었다B-Tree
Big-O Notation
Algorithm | Average | Worst case |
---|---|---|
Space | O(log n) | O(log n) |
Search | O(log n) | O(log n) |
Insert | O(log n) | O(log n) |
Delete | O(log n) | O(log n) |
About B-Tree
- 모든 리프노드가 아닌 노드는 최대 M개의 엔티티를 가진다
- 모든 리프노드가 아닌 노드는 최소 M/2개의 엔티티를 가진다
- 모든 리프노드가 아닌 노드가 K개의 엔티티를 가지면 자식 노드는 K+1개를 가진다
- 모든 노드는 최대 M+1개의 자식노드를 가진다
- 루트노드를 제외한 리프노드가 아닌 모든 노드들은 최소 ⌈m/2⌉ 의 자식 노드를 가진다
- 루트노드가 리프노드가 아니라면 최소 두개의 자식 노드를 가진다
- 모든 외부노드는 같은 레벨에 존재하며 아무런 정보도 가지고 있지 않다
- 각 노드의 엔티티는 정렬된 상태이다
- 엔티티의 중복은 불가능하다
B-Tree 구현
c
1 |
|
참조
https://en.wikipedia.org/wiki/B-tree
https://m.blog.naver.com/PostView.nhn?blogId=wari7i7&logNo=220854776817&proxyReferer=https%3A%2F%2Fwww.google.com%2F