Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 29 | 30 | 31 |
Tags
- Adapter 패턴
- Microservice
- Spring
- Kotlin
- devops
- 마이크로서비스
- MSA
- 클라우드 네이티브
- 쿠버네티스
- 자바
- CRD
- 익명클래스
- ansible
- spring microservice
- cloud native java
- Algorithm
- cloud native
- Stress test
- 헬름
- 머신러닝
- 클라우드 네이티브 자바
- decorator 패턴
- ingress
- 코틀린
- java
- MySQL
- nGrinder
- kubernetes
- Semaphore
- 동기화
Archives
- Today
- Total
카샤의 만개시기
2-3 트리 본문
2-3 트리는 노드 하나에 2개의 값이 있을수 있으며 링크는 3개가 있을수 있다.
2-3 트리는 다음과 같은 특징을 가지고 있다.
- 각 노드는 2개 이하의 아이템과 3개 이하의 링크로 구성된다.
- 노드 안의항목은 Item1 < Item2 크기로 정렬된다.
- 각 링크는 SubTree1 < Item1 < SubTree2 < Item3 < SubTree3 와 같은 순서로 링크된다.
AVL 트리가 총 6개의 노드를 나타낼때 높이는 2이지만 2-3트리를 이용하여 나타낼때는 높이가 1이 된다.
따라서 AVL트리와 2-3트리의 시간복잡도를 나타내자면 각각 O( log2(N) ), O( log3(N) )이 되어 2-3트리가 성능이 더 높음을 알수 있다.
하지만 2-3트리가 여러 가지 트리 중 성능이 최고라고 할수만은 없다.
왜냐면 AVL트리가 회전 작업으로 인해 불필요한 오버헤드가 발생했던것과 같이 2-3트리 역시 노드 안에 2개의 아이템이 존재한다면 해당 노드를 분할하는 작업이 더 큰 오버헤드를 발생시킬수도 있기 때문이다.
그로인해 분할 작업을 더 간단하게 만든 2-3-4트리를 사용하기도 한다.
2-3-4트리는 노드 안에 저장되는 아이템이 3개까지 허용되며 자식 노드에 연결되는 링크 역시 4개까지 허용된다.
2-3-4트리는 B트리 구조와 비슷하다.
'Foundation > Algorithm' 카테고리의 다른 글
AVL 트리 (0) | 2019.02.04 |
---|---|
트리 순회 알고리즘 (0) | 2019.02.04 |
Comments