Abbiamo sempre vedere le operazioni su un (binario di ricerca) albero è O (log n) caso peggiore tempo di esecuzione per l'altezza dell'albero è logn. Mi chiedo se ci viene detto che un algoritmo ha tempo di esecuzione in funzione di logn, ad esempio m + nlogn, possiamo concludere che deve comportare un (aumentata) albero?
EDIT: Grazie per i vostri commenti, ora mi rendo conto dividere et impera e albero binario sono così simili visivamente / concettualmente. Non avevo mai fatto un collegamento tra i due. Ma penso a un caso in cui O (log n) non è un divide et impera algo che coinvolge un albero che non ha proprietà di un BST / AVL / rosso-nero albero.
Questa è la struttura di dati set disgiunti con le operazioni / Unione Trova, il cui tempo di esecuzione è O (N + MlogN), con N è il # di elementi e M il numero di operazioni Trova.
Per favore fatemi sapere se mi manca sth, ma non riesco a vedere come divide et impera entra in gioco qui. Ho appena vedere, in questo caso (insieme disgiunto) che ha un albero con alcuna proprietà BST e un tempo di esecuzione essendo una funzione di log N. Quindi la mia domanda è sul perché / perché non posso fare una generalizzazione da questo caso.
















