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

이진 탐색 트리 (BST)

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

01 알고리즘 작동 원리 탐색

Interactive Step-by-Step
TAP OR HOVER
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
Guide Progress0%