// Elias Delta – código universal mais eficiente que Gamma para inteiros maiores
Mais eficiente que Elias Gamma para inteiros > 3.
Funciona para qualquer inteiro positivo sem parâmetros adicionais.
Usa log₂(n) + 2log₂(log₂(n)) + 1 bits.
Elias Delta codifica um inteiro positivo n em três partes: 1) calcula L = ⌊log₂(n)⌋ + 1 (comprimento em bits), 2) codifica L usando Elias Gamma, 3) anexa os últimos L−1 bits de n. Esse crescimento duplamente logarítmico o torna mais eficiente que Gamma para números maiores, mantendo-se um código universal.
n=1: L=1, Gamma(1)='1', bits='', Delta='1' n=2: L=2, Gamma(2)='010', bits='0', Delta='0100' n=3: L=2, Gamma(2)='010', bits='1', Delta='0101' n=4: L=3, Gamma(3)='011', bits='00', Delta='01100' n=16: L=5, Gamma(5)='00101', bits='0000', Delta='001010000' Comparar comprimentos: n | Gamma | Delta | Ganho 1 | 1 | 1 | 0 16 | 9 | 9 | 0 100 | 13 | 12 | 1 1000 | 19 | 16 | 3
Elias Delta é uma melhoria sobre Elias Gamma que codifica primeiro o comprimento da representação binária com Gamma e depois anexa os bits restantes. Usa aproximadamente log₂(n) + 2log₂(log₂(n)) + 1 bits, tornando-se mais eficiente para inteiros maiores.
Gamma usa 2⌊log₂(n)⌋ + 1 bits, enquanto Delta usa log₂(n) + 2log₂(log₂(n)) + 1 bits. Delta é melhor para n > 3 e a economia aumenta para números maiores. Para valores muito pequenos (1–3), os dois códigos são semelhantes.
Use Delta quando seus dados contiverem principalmente inteiros > 3. Para inteiros muito pequenos (1–2), Gamma pode ser ligeiramente melhor. Para inteiros muito grandes, considere Elias Omega, que melhora ainda mais Delta.
Delta é um meio-termo. Gamma é o mais simples, porém o menos eficiente. Delta melhora a compressão. Omega é o melhor para inteiros muito grandes, mas também o mais complexo. Escolha com base na distribuição dos dados e nas restrições de implementação.