Estou procurando um algoritmo para mesclar duas árvores de pesquisa binária de tamanho e alcance arbitrários. A maneira óbvia de implementar isso seria encontrar subárvores inteiras cujo intervalo pode caber em um nó externo arbitrário na outra árvore. No entanto, o pior caso de tempo de execução para esse tipo de algoritmo parece estar na ordem de O(n+m)
onde n
e m
é o tamanho de cada árvore, respectivamente.
No entanto, me disseram que isso poderia ser feito em O(h)
, onde h
é a altura da árvore com a altura maior. E eu estou completamente perdido em como isso é possível. Eu tentei experimentar girar uma das árvores primeiro, mas girar uma árvore em uma espinha já é O (h).
O(log n)
com uma simples função de nó de movimentação?
n
. Somente árvores binárias completas ou completas têm uma altura logarítmica em relação ao número total de nós.