lcs: Find longest common sublist of two lists
Provides a function lcs that takes two lists and returns a longest common sublist. For example, lcs abcd acbd is either abd or acd.
The package provides a simple, stupid and (most of all) slow implementation that needs, for inputs of length m and n, O(m+n) space and O((m+n)!) time in the worst case.
It also provides an implementation of the Hunt-Szymanski LCS algorithm, based on that in String searching algorithms by Graham A Stephen, ISBN 981021829X.
Given inputs xs and ys of length m and n respectively, where there are r pairs (x, y) where x is in xs, y is in ys and x == y, Hunt-Szymanski needs O(r+m+n) space and O((r+m+n)*log(m+n)) time. Thus this is O((m+n)^2) space and O((m+n)^2*log(m+n)) time in the worst case.
| Version | 0.2 |
|---|---|
| Dependencies | array, base |
| License | OtherLicense |
| Copyright | Ian Lynagh, 2005 |
| Author | Ian Lynagh |
| Maintainer | igloo@earth.li |
| Stability | provisional |
| Category | List |
| Home page | http://urchin.earth.li/~ian/cabal/lcs/ |
| Upload date | Fri Feb 1 17:01:45 UTC 2008 |
| Uploaded by | IanLynagh |
| Built on | ghc-6.10, ghc-6.8 |
Modules
Downloads
- lcs-0.2.tar.gz (Cabal source package)
- package description (included in the package)
