Oh My Algorithm
Algorithm Guidecomplexity: 평균 O(log n)

이진 탐색 트리 (BST)

왼쪽 자식 < 부모 < 오른쪽 자식 규칙을 지키는 이진 트리입니다. 정렬된 구조 덕분에 탐색·삽입·삭제를 평균 O(log n)에 처리하지만, 한쪽으로 치우치면 O(n)까지 퇴화합니다.

01 알고리즘 작동 원리 탐색

Interactive Step-by-Step
Binary Search Tree
50

이진 탐색 트리(BST). 왼쪽엔 작은 값, 오른쪽엔 큰 값을 두는 규칙으로 값을 삽입합니다.

Logic Node1 / 8

02 쉽게 이해하기

For Everyone
🔑비유

숫자 맞히기 스무고개 — '그보다 큰가요?'로 매번 절반씩 좁혀갑니다.

💡쉽게 말하면

왼쪽엔 작은 값, 오른쪽엔 큰 값을 두는 나뭇가지 구조예요.

이 규칙 덕에 찾을 때 절반씩 건너뛰어 빠릅니다(평균 O(log n)).

📍어디에 쓰나
  • 정렬된 데이터의 빠른 검색·삽입
  • 범위 조회
  • 자동완성 사전

03 파이썬 구현 코드

이진 탐색 트리 (BST)의 핵심 로직을 담은 표준 구현 예시입니다. 가급적 간결하고 읽기 쉬운 코드로 작성되었습니다.

core_implementation.py
class Node:
    def __init__(self, key):
        self.key = key
        self.left = None
        self.right = None

def insert(root, key):
    if root is None:
        return Node(key)
    if key < root.key:
        root.left = insert(root.left, key)
    elif key > root.key:
        root.right = insert(root.right, key)
    return root

def search(root, key):
    while root and root.key != key:
        root = root.left if key < root.key else root.right
    return root

04 자주 묻는 질문

FAQ
이진 탐색 트리 (BST)란 무엇인가요?+

왼쪽 자식 < 부모 < 오른쪽 자식 규칙을 지키는 이진 트리입니다. 정렬된 구조 덕분에 탐색·삽입·삭제를 평균 O(log n)에 처리하지만, 한쪽으로 치우치면 O(n)까지 퇴화합니다.

이진 탐색 트리 (BST)의 시간복잡도는 어떻게 되나요?+

이진 탐색 트리 (BST)의 시간복잡도는 평균 O(log n) 입니다. 시각화의 단계별 진행을 따라가며 왜 이런 복잡도가 나오는지 직접 확인할 수 있습니다.

이진 탐색 트리 (BST)은(는) 어디에 사용하나요?+

정렬된 데이터의 빠른 검색·삽입, 범위 조회, 자동완성 사전.

이진 탐색 트리 (BST)를 쉽게 비유하면?+

숫자 맞히기 스무고개 — '그보다 큰가요?'로 매번 절반씩 좁혀갑니다.

Guide Progress0%