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 CSC_S \gets \emptyset y considerando los bits en cada posición kk de x=Xx=|X| e y=Yy=|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 TT\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 TT\gets\emptyset.
  5. Si T=2|T|=2, unimos los dos árboles BkB_k y BkB_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.