Optimal cache-aware suffix selection

Gianni Franceschini, Roberto Grossi, S. Muthukrishnan

    Research output: Chapter in Book/Report/Conference proceedingConference contribution

    Abstract

    Given string S[1⋯N] and integer k, the suffix selection problem is to determine the kth lexicographically smallest amongst the suffixes S[i ⋯ N], 1 ≤ i ≤ N. We study the suffix selection problem in the cache-aware model that captures two-level memory inherent in computing systems, for a cache of limited size M and block size B. The complexity of interest is the number of block transfers. We present an optimal suffix selection algorithm in the cache-aware model, requiring θ (N/B) block transfers, for any string S over an unbounded alphabet (where characters can only be compared), under the common tall-cache assumption (i.e. M = Ω (B1+∈), where ∈ < 1). Our algorithm beats the bottleneck bound for permuting an input array to the desired output array, which holds for nearly any nontrivial problem in hierarchical memory models.

    Original languageEnglish (US)
    Title of host publicationSTACS 2009 - 26th International Symposium on Theoretical Aspects of Computer Science
    Pages457-468
    Number of pages12
    StatePublished - 2009
    Event26th International Symposium on Theoretical Aspects of Computer Science, STACS 2009 - Freiburg, Germany
    Duration: Feb 26 2009Feb 28 2009

    Publication series

    NameLeibniz International Proceedings in Informatics, LIPIcs
    Volume3
    ISSN (Print)1868-8969

    Conference

    Conference26th International Symposium on Theoretical Aspects of Computer Science, STACS 2009
    CountryGermany
    CityFreiburg
    Period2/26/092/28/09

    ASJC Scopus subject areas

    • Software

    Fingerprint Dive into the research topics of 'Optimal cache-aware suffix selection'. Together they form a unique fingerprint.

  • Cite this

    Franceschini, G., Grossi, R., & Muthukrishnan, S. (2009). Optimal cache-aware suffix selection. In STACS 2009 - 26th International Symposium on Theoretical Aspects of Computer Science (pp. 457-468). (Leibniz International Proceedings in Informatics, LIPIcs; Vol. 3).