B 트리(B-tree) - 알고리즘
by 효기’sB 트리 (B-tree)
B트리의 정의
★ 각 노드의 최대 키의 수는 m - 1
최소 키의 수 → (m/2) - 1
각 노드에 포함된 키 순서가 항상 정렬 상태
좌측 서브트리 < 부모 < 우측 서브트리
삽입은 항상 단말 노드에서 발생
삽입되는 키로 인해 최대 키수가 초과되면 노드가 분할되며 중간키가 부모 노드로 이동
트리 구축은 밑에서 위로 진행
트리의 형태
→ m-ary 트리 (m개 이하 아들. 각 node의 data수는 m-1)
root → 최소 2개의 아들
leaf → 모든 leaf의 레벨은 동일
→ 모든 leaf 노드는 리프가 아닌 이상 적어도 두 개의 서브트리를 갖는다.
→ 한노드 안에 있는 키 값은 오름차순을 유지한다.
→ 탐색, 추가, 삭제는 루트로부터 시작한다.
node상의 데이터
각 node상의 데이터는 정렬 상태
binary search tree의 성질과 동일 (좌우측간 데이터 대소 관계)
B트리의 장단점
장점
→ 노드의 삽입과 삭제 후에도 균형트리 유지
→ 균등한 응답속도 보장
→ Time complexity : O(log n)
단점
→ 순차탐색 지원하지 않음 (매번 root에서부터 검색 시작)
→ 노드의 낮은 공간 활용성
'Algoritum' 카테고리의 다른 글
Day10 자료구조 정렬의 시간복잡도 (20) | 2023.07.17 |
---|---|
Day09 자료구조 정렬 알고리즘 (16) | 2023.07.15 |
버블정렬(bubble sort) - 알고리즘 (1) | 2022.12.05 |
해싱(hashing) - 알고리즘 (2) | 2022.12.02 |
이진탐색 Binary searching, AVL 트리 - 알고리즘 (0) | 2022.12.01 |
블로그의 정보
감성 개발자 효기
효기’s