Saltar a contenido

\([8,5,3,9,0,1,2,3,4,9]\)

Deseo hacer \(A[3] = 10\) mi arreglo queda \([8,5,3,10,0,1,2,3,4,9]\)

Inicialmente para \([8,5,3,9,0,1,2,3,4,9]\) el arbol es:

graph TD
    A["[0,9],44"] --> B["[0,5],26"]
    A --> C["[6,9],18"]
    B --> D["[0,3],25"]
    B --> E["[4,5],1"]
    C --> F["[6,7],5"]
    C --> G["[8,9],13"]
    D --> H["[0,1],13"]
    D --> I["[2,3],12"]
    E --> J["[4],0"]
    E --> K["[5],1"]
    F --> L["[6],2"]
    F --> M["[7],3"]
    G --> N["[8],4"]
    G --> O["[9],9"]
    H --> P["[0],8"]
    H --> Q["[1],5"]
    I --> R["[2],3"]
    I --> S["[3],9"]

Y ahora con el cambio \([8,5,3,10,0,1,2,3,4,9]\)

graph TD
    A["[0,9],44 --> 45"] --> B["[0,5],26 --> 27"]
    A --> C["[6,9],18"]
    B --> D["[0,3],25 --> 26"]
    B --> E["[4,5],1"]
    C --> F["[6,7],5"]
    C --> G["[8,9],13"]
    D --> H["[0,1],13"]
    D --> I["[2,3],12 --> 13"]
    E --> J["[4],0"]
    E --> K["[5],1"]
    F --> L["[6],2"]
    F --> M["[7],3"]
    G --> N["[8],4"]
    G --> O["[9],9"]
    H --> P["[0],8"]
    H --> Q["[1],5"]
    I --> R["[2],3"]
    I --> S["[3],9 --> 10"]

En la actualizacion vamos a afectar directamente los ancentros de la posición que estamos modificando

Evaluación perezosa

Tenemos cuando vamos a actualizar un rango, no necesiamente tenemos que actualizar todos los vertices asociados a esa actualización, por ejemplo para este caso, por ejemplo para el arreglo inicial vamos a aplicar update-range(1,4,10) \([8,5,3,9,0,1,2,3,4,9]\)

graph TD
    A["[0,9],44+10"] --> B["[0,5],26"]
    A --> C["[6,9],18"]
    B --> D["[0,3],25+10"]
    B --> E["[4,5],1+10"]
    C --> F["[6,7],5"]
    C --> G["[8,9],13"]
    D --> H["[0,1],13+10"]
    D --> I["[2,3],12+L=10"]
    E --> J["[4],0"]
    E --> K["[5],1'"]
    F --> L["[6],2"]
    F --> M["[7],3"]
    G --> N["[8],4"]
    G --> O["[9],9"]
    H --> P["[0],8"]
    H --> Q["[1],5+10"]
    I --> R["[2],3"]
    I --> S["[3],9"]

En este caso no tocamos las hojas 2 y 3 fdado que quedan con una operacion pendiente L = 10 en el nodo 2 y 3 que esta contenido en el rango 1,4 que actualizamos.

En este caso no propagamos todos los cambios al arbol de segmentos.