Abstract

The Lempel-Ziv parsing of a string (LZ77 for short) is one of the most important and widely-used algorithmic tools in data compression and string processing. We show that the Lempel-Ziv parsing of a string of length nn on an alphabet of size σσ can be computed in O(nlog⁡log⁡σ)O(n\log\logσ) time (O(n)O(n) time if we allow randomization) using O(nlog⁡σ)O(n\logσ) bits of working space; that is, using space proportional to that of the input string in bits. The previous fastest algorithm using O(nlog⁡σ)O(n\logσ) space takes O(n(log⁡σ+log⁡log⁡n))O(n(\logσ+\log\log n)) time. We also consider the important rightmost variant of the problem, where the goal is to associate with each phrase of the parsing its most recent occurrence in the input string. We solve this problem in O(n(1+(log⁡σ/log⁡n))O(n(1 + (\logσ/\sqrt{\log n})) time, using the same working space as above. The previous best solution for rightmost parsing uses O(n(1+log⁡σ/log⁡log⁡n))O(n(1+\logσ/\log\log n)) time and O(nlog⁡n)O(n\log n) space. As a bonus, in our solution for rightmost parsing we provide a faster construction method for efficient 2D orthogonal range reporting, which is of independent interest.

Explore this paper’s authors, topics and related work.

Building this map preview

BZPEER is loading the nearby papers, people, topics and institutions for this page.

Reviews 0

Write a reviewWrite

No reviews yet.

Discussion 0

Add a commentWrite

No comments yet.