slides

Optimal cache-aware suffix selection

Abstract

Given string S[1..N]S[1..N] and integer kk, the {\em suffix selection} problem is to determine the kkth lexicographically smallest amongst the suffixes S[i...N]S[i... N], 1iN1 \leq i \leq N. We study the suffix selection problem in the cache-aware model that captures two-level memory inherent in computing systems, for a \emph{cache} of limited size MM and block size BB. The complexity of interest is the number of block transfers. We present an optimal suffix selection algorithm in the cache-aware model, requiring \Thetah{N/B} block transfers, for any string SS over an unbounded alphabet (where characters can only be compared), under the common tall-cache assumption (i.e. M=\Omegah{B^{1+\epsilon}}, where ϵ<1\epsilon<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

    Similar works