Perché una query della gamma su un albero di segmento ritorna al massimo $ \ lceil \ log_2 {n} \ rceil $ nodi?
-
29-09-2020 - |
Domanda
Se un array $ A [1 \ Ldots n] $ è rappresentato utilizzando un albero di segmento avente set di set in ciascun intervallo, perché una interrogativa intervallo
Se è venuto in questa affermazione durante la lettura Questa risposta .
per citare:
.Trova una copertura disgiunta della gamma di query utilizzando il segmento standard Procedura di query ad albero. Otteniamo $ o (\ log n) $ nodi disgiunti, l'unione di il cui multisets è esattamente il multiset di valori nel campo della query. Chiamiamo quei multisets $ s_1, \ dots, s_m $ (con $ m \ le \ lceil \ log_2 n \ rceil $ ).
Ho provato a cercare una prova, ma non riuscivo a trovarlo su nessun sito. Qualcuno può aiutarmi a dimostrarlo?
Soluzione
Ecco l'idea di base.
Lasciare un intervallo dyadic un intervallo del modulo $$ [2 ^ b A, 2 ^ B (A + 1) -1] $$ Per alcuni Integer $ a, b \ geq 0 $ .
rivendicazione 1. se $ m <2 ^ n $ quindi qualsiasi intervallo del modulo $ [0, M-1] $ può essere scritto come un'unione disgiunta al massimo $ N $ intervalli diadici.
rivendicazione 2. se $ 0 \ leq m_1 \ leq m_2 \ leq 2 ^ n $ quindi qualsiasi intervallo del modulo
Proof. L'espansione binaria di $ M_1 $ e $ m_2 $ è della forma $ M_1= x0y, m_2= x1z $ , dove $ | y |= | z | $ < / span>. Let $ m= x10 ^ {| z |} $ . Usando la rivendicazione 1, possiamo esprimere $ [0, m_2-m-1] $ come unione di al massimo $ n $ intervalli diadici. Spostandoli per $ M $ , expressiamo $ [m, m_2-1] $ come unione di al massimo $ N $ intervalli diadici. Allo stesso modo, utilizzando la rivendicazione 1 possiamo esprimere $ [0, m-m_1-1] $ come unione di al massimo $ N $ Intervalli Dyadic. Spostamento e invertente, esprimere $ [M_1, M-1] $ come unione di al massimo $ N $ Intervalli diadici.
(In entrambi i casi, è necessario controllare tale spostamento, e possibilmente invertendo, preservatori un intervallo di essere diadiato.)