TreeSet은 왜 이진 탐색 트리 대신 레드-블랙 트리를 사용할까?
·
언어/Java
TreeSet 이란? 중복을 허용하지 않고,자동으로 정렬되는 Set 컬렉션입니다.내부적으로는 TreeMap을 사용하고,TreeMap의 핵심 자료구조가 바로 레드-블랙 트리(Red-Black Tree)이다!이진 탐색 트리란 어떤 문제가 있을까? 이진 탐색 트리는:왼쪽 삽입 순서에 따라 한쪽으로 쏠릴 수 있는 문제가 있다.예시: 오름차순으로 삽입1 → 2 → 3 → 4 → 5 [1] \ [2] \ [3] \ [4] \ [5]이 구조는 거의 LinkedList처럼 변형되어,검색/삽입 성능이 O(log n)에서 O(n)으로 퇴화할 수 있다.레드-블랙 트리(Red-Black Tree)는 어떻게 다른가?레드-블랙 트리는 트리의 균형을 자동으로 맞춰주는 이진 ..