worldint
mathengi
worldint
전체 방문자
오늘
어제
  • 분류 전체보기 (152)
    • infra, cloud (4)
      • aws (4)
    • TIL,WIL(일간,주간 회고) (57)
    • 컴퓨터 공학 (5)
      • 정보통신 (3)
      • 컴퓨터 구조 (2)
    • Math (1)
      • linear algebra (0)
      • 명제와 집합 (1)
      • Linux Ubuntu (0)
    • Operating System (9)
    • programming (63)
      • c , c++ (9)
      • c# (0)
      • java (2)
      • javascript (14)
      • Python (4)
      • github (1)
      • programing terms (12)
      • html, css (2)
      • docker (3)
      • algorithm_datastructure (4)
      • database (9)
      • flutter(dart) (2)
    • 항해99 부트캠프 (7)
      • 사전교육 (7)
    • IT English(개발관련 영어공부) (0)
    • 알고리즘 (1)
    • 보안관련 (1)

블로그 메뉴

    공지사항

    인기 글

    태그

    • docker
    • EC2
    • CloudFront
    • AWS
    • flutter #provider #error
    • NVM
    • 디비데드락
    • MONGOOSE
    • db데드락
    • NoSQL
    • Blue/Green
    • ci/cd
    • MongoDB
    • Javascript
    • node
    • ec2 #코드디플로이 #리눅스
    • nodejs

    최근 댓글

    최근 글

    티스토리

    hELLO · Designed By 정상우.
    worldint

    mathengi

    programming/algorithm_datastructure

    B-tree

    2024. 11. 11. 13:10

    binary search tree 에서 파생된것으로

    BST에서 자식노드의 갯수에 제한을 없앤것이 b-tree이다

    자식노드의 갯수가 3개 이상이려면
    부모노드의 key도 하나 이상이어야한다

    부모노드의 key들을 오름차순으로 정렬한다

    정렬된 순서에 따라 자녀 노드들의 key값의 범위가 결정된다

                      [20 40]
                   /     |      \
            [10 15]   [30 35]   [50 60 70]
           /    |     /    |     |      \
        [5 7] [12] [25] [32] [45]  [55 65 75]

    자식노드의 갯수에 따라 n차 b-tree로 불리는데
    위의 예시는 자식노드가 3개이므로 3차 B-tree이다

    key에 의해서 자식노드들의 범위가 정해진다

    왼쪽: 20 > x,
    가운데: 20 < x < 40
    오른쪽: 20 < x

    B-tree의 중요한 파라미터들로는

    • M : 최대로 가질 수 있는 자식노드의 수, M에 따라 M차 B-tree로 불린다, 위의 예시에서는 3
    • M-1 : 각 노드의 최대 key의 수 : 노드에 들어있는 숫자의 갯수를 말함, 3차 b-tree는 최대 2개까지 들어있을 수 있다
    • ⎡M/2⎤: M/2의 올림, M이 3일때 2 : 각 노드의 최소 자녀 노드 수
      (leef, root노드는 제외)
    • ⎡M/2⎤-1: 각 노드의 최소 key 수, 예시에서는 1
      (root node제외)
    • b-tree에서 internal node의 key가 x라면 자식노드의 수는 x+1

    시간복잡도

    O(logN)의 시간 복잡도를 가짐
    N은 테이터의 갯수

    만약 데이터가 100개일 때, 3차 B-tree라면 $$\log_3 100$$ 으로 4~5의 값이 나오고
    그럼 높이가 4개에서 5개정도가 나오고 시간 복잡도도 그정도 나온다

    'programming > algorithm_datastructure' 카테고리의 다른 글

    B+트리, B트리 비교  (0) 2024.12.01
    이진트리, 이진탐색트리  (0) 2024.11.11
    [hackerrank] sorting 문제  (0) 2023.04.08
      'programming/algorithm_datastructure' 카테고리의 다른 글
      • B+트리, B트리 비교
      • 이진트리, 이진탐색트리
      • [hackerrank] sorting 문제
      worldint
      worldint
      공부한 내용들, 트러블 슈팅, 아티클 번역 등등 올리는 블로그입니다

      티스토리툴바