Estoy buscando un algoritmo para fusionar dos árboles de búsqueda binarios de tamaño y rango arbitrarios. La forma obvia de implementar esto sería encontrar subárboles completos cuyo rango pueda caber en un nodo externo arbitrario en el otro árbol. Sin embargo, el peor tiempo de ejecución para este tipo de algoritmo parece ser del orden de O(n+m)
dónde n
y m
del tamaño de cada árbol, respectivamente.
Sin embargo, me han dicho que esto se podría hacer en O(h)
, donde h
está la altura del árbol con la altura más grande. Y estoy completamente perdido en cómo esto es posible. He intentado experimentar rotando uno de los árboles primero, pero girar un árbol en una columna ya es O (h).
O(log n)
con una simple función de nodo de movimiento?
n
. Solo los árboles binarios completos o completos tienen una altura logarítmica con respecto a su número total de nodos.