[Haskell-cafe] None brute-force BWT algorithm
Henning Thielemann
lemming at henning-thielemann.de
Fri Jun 24 23:03:20 CEST 2011
On Thu, 23 Jun 2011, larry.liuxinyu wrote:
> I think that version is still a brute-force solution. The only difference is that it uses EOF (sentinel) so that it can sort the
> suffixes instead of rotations.
> However, the big-O complexity is the same.
>
> Let's take the rbwt for example:
>
> > rbwt xs = let
> > res = sortBy (\(a:as) (b:bs) -> a `compare` b) (zipWith' (:) xs res)
> > in
> > tail . map snd . zip xs $ head res
> Here we can see that, although the infinity res is lazy-evaluated, it actually sorts the matrix N times, adding one column per
> evaluation.
Did you also compare the actual runtimes? As far as I understand, the
matrix in Bertram's code is sorted once. Sharing of data avoids
recomputation.
More information about the Haskell-Cafe
mailing list