Sto cercando un algoritmo per unire due alberi binari di ricerca di dimensioni e intervallo arbitrari. Il modo ovvio in cui procederei per implementarlo sarebbe quello di trovare interi sottotitoli il cui intervallo può adattarsi a un nodo esterno arbitrario nell'altro albero. Tuttavia, il peggior tempo di esecuzione per questo tipo di algoritmo sembra essere nell'ordine di O(n+m)
dove n
e m
sono rispettivamente le dimensioni di ciascun albero.
Tuttavia, mi è stato detto che questo potrebbe essere fatto O(h)
, dov'è h
l'altezza dell'albero con l'altezza maggiore. E mi sono completamente perso su come ciò sia possibile. Ho provato a sperimentare prima di ruotare uno degli alberi, ma ruotare un albero in una spina dorsale è già O (h).
O(log n)
con una semplice funzione di spostamento del nodo?
n
. Solo gli alberi binari completi o completi hanno un'altezza logaritmica rispetto al numero totale di nodi.