임의의 크기와 범위의 두 개의 이진 검색 트리를 병합하는 알고리즘을 찾고 있습니다. 분명 나는이 구현에 대한 갈 것이라고 방법은 그 범위가 다른 나무에 임의의 외부 노드에 들어갈 수있는 전체 하위 트리를 찾을 수있을 것이다. 그러나 알고리즘이 유형의 시간을 실행하는 최악의 경우의 순서 것으로 보인다 및 각각 각 나무의 크기입니다.O(n+m)
n
m
그러나 나는 이것을 할 수 있다고 들었습니다 . 높이가 큰 나무의 높이는 O(h)
어디 h
입니까? 그리고 이것이 어떻게 가능한지 완전히 잃어 버렸습니다. 나무를 먼저 회전시키는 실험을 시도했지만 나무를 척추로 회전시키는 것은 이미 O (h)입니다.
O(log n)
간단한 이동 노드 기능으로 이진 트리를 병합하지 않는 것이 있습니까?
n
. 전체 또는 완전한 이진 트리 만 전체 노드 수에 대한 높이 로그를 갖습니다.