English

Computing the LZ-End parsing: Easy to implement and practically efficient

Data Structures and Algorithms 2024-09-18 v2

Abstract

The LZ-End parsing [Kreft & Navarro, 2011] of an input string yields compression competitive with the popular Lempel-Ziv 77 scheme, but also allows for efficient random access. Kempa and Kosolobov showed that the parsing can be computed in time and space linear in the input length [Kempa & Kosolobov, 2017], however, the corresponding algorithm is hardly practical. We put the spotlight on their suboptimal algorithm that computes the parsing in time O(nlglgn)\mathcal{O}(n \lg\lg n). It requires a comparatively small toolset and is therefore easy to implement, but at the same time very efficient in practice. We give a detailed and simplified description with a full listing that incorporates undocumented tricks from the original implementation, but also uses lazy evaluation to reduce the workload in practice and requires less working memory by removing a level of indirection. We legitimize our algorithm in a brief benchmark, obtaining the parsing faster than the state of the art.

Keywords

Cite

@article{arxiv.2409.07840,
  title  = {Computing the LZ-End parsing: Easy to implement and practically efficient},
  author = {Patrick Dinklage},
  journal= {arXiv preprint arXiv:2409.07840},
  year   = {2024}
}
R2 v1 2026-06-28T18:42:10.627Z