Saltar a Contenido

Suma de colas ​

La primitiva crucial en colas binomiales es la suma, que dadas dos colas binomiales CXC_X y CYC_Y para conjuntos de elementos XX e YY entrega una cola binomial CSC_S para el conjunto X+YX + Y (esta es la suma de multiconjuntos, donde las multiplicidades de elementos se suman). La suma procede análogamente a la suma de los números binarios ∣X∣|X| y ∣Y∣|Y|, partiendo con CS←∅C_S \gets \emptyset y considerando los bits en cada posición kk de x=∣X∣x=|X| e y=∣Y∣y=|Y|, desde el bit menos significativo (k=0k=0) al más significativo. Llevaremos también un conjunto TT que contiene los árboles BkB_k's que se están sumando en la posición kk, incluyendo un árbol de acarreo si es necesario (análogo al bit de carry de la suma binaria). Al comenzar tenemos T←∅T\gets\emptyset. Para cada kk hacemos lo siguiente.

  1. Si el kk-ésimo bit de xx es 1, movemos el árbol BkB_k de CXC_X a TT.
  2. Si el kk-ésimo bit de yy es 1, movemos el árbol BkB_k de CYC_Y a TT.
  3. Si ∣T∣=0|T|=0, no hacemos nada para este valor de kk.
  4. Si ∣T∣=1|T|=1, movemos el árbol BkB_k de TT a CSC_S, dejando T←∅T\gets\emptyset.
  5. Si ∣T∣=2|T|=2, unimos los dos árboles BkB_k y Bk′B_k' de TT en un árbol Bk+1B_{k+1}, colgando el que tenga mayor raíz del que tenga menor raíz. El resultado es el nuevo contenido de TT para el siguiente valor de kk.
  6. Si ∣T∣=3|T|=3, elegimos un árbol BkB_k de los tres y lo movemos a CSC_S. Con los otros dos, procedemos como en el punto anterior.

Suma Binomial 1


Suma Binomial 2


Suma Binomial 3


Suma Binomial 4

La suma requiere entonces O(log⁡(x+y))O(\log(x+y)) de tiempo, y deja los conjuntos CXC_X, CYC_Y y TT vacíos, y el resultado de la suma en CSC_S.

generating algorithms by Puspito from the Noun Project. © 2026 Me. Built with VitePress.