Diferenças entre edições de "LZ77"

117 bytes adicionados ,  02h48min de 12 de julho de 2019
m
→‎Exemplo de implementação: Adicionada indentação aos comentários do código de exemplo para que se tornasse mais legivel e padronizado.
m (ajustes gerais nas citações, outros ajustes usando script)
m (→‎Exemplo de implementação: Adicionada indentação aos comentários do código de exemplo para que se tornasse mais legivel e padronizado.)
buffer = str[i:i+self.buffer_size]
tuple = (0, 0, str[i])
# Este "loop" é o "coração" do algoritmo. Aqui procuramos
# a maior sequência dentro da janela (window) que case
# com o início do buffer. A implementação atual simplesmente
# procura por ocorrências de substrings cada vez menores
# do buffer até encontrar alguma. Implementações mais
# eficientes usariam um dicionário de prefixos, uma trie
# ou uma tabela de espalhamento.
for size in range(len(buffer), 0, -1):
index = window.rfind(buffer[0:size])
if index >= 0:
literal = '' # a string vazia representa
# o final do arquivo.
if i + size < len(str):
literal = str[i+size]
5 818

edições