Vedem întotdeauna operații pe un arbore (binar de căutare) a O (logn) cel mai rău caz, timpul de funcționare din cauza înălțimii arborelui este LOGN. Mă întreb dacă ni se spune că un algoritm are timp de funcționare în funcție de logn, de exemplu, m + nlogn, putem concluziona că trebuie să implice un arbore (augmented)?
EDIT: Datorită comentariile tale, mi dau seama acum diviza-și cuceri arbore binar sunt atât de asemănătoare vizual / conceptual. Nu am avut niciodată făcut o legătură între cele două. Dar mă gândesc la un caz în care O (logn) nu este o divide cuceri algo care implică un copac care nu are nici o proprietate a unui BST / AVL / rosu-negru copac.
Asta e disjuncte set structura de date cu operatiuni / Union Find, al cărui timp de rulare este O (N + MlogN), cu N fiind # de elemente și M numărul de operațiuni Find.
Te rog lasă-mă să știu dacă îmi lipsește sth, dar nu pot vedea modul în care divide-cuceri intră în joc aici. Tocmai am vedea în acest (set disjuncte), caz că are un copac cu nici o proprietate BST și un timp de rulare fiind o funcție de LOGN. Deci, întrebarea mea este de ce / de ce nu pot face o generalizare de la acest caz.
















