Constructing Suffix Trees: Difference between revisions
Jump to navigation
Jump to search
No edit summary |
No edit summary |
||
(One intermediate revision by the same user not shown) | |||
Line 8: | Line 8: | ||
== Parameters == | == Parameters == | ||
$n$: length of string | |||
== Table of Algorithms == | == Table of Algorithms == | ||
Line 32: | Line 32: | ||
| [[Süleyman Cenk Sahinalp ; Uzi Vishkin (Constructing Suffix Trees Constructing Suffix Trees)|Süleyman Cenk Sahinalp ; Uzi Vishkin]] || 1994 || $O(log^{2}(n)$) || $O(n^{({1}+\eps)})$ for any fixed eps>{0} || Exact || Parallel || [https://link.springer.com/content/pdf/10.1007/3-540-57811-0_3.pdf Time & Space] | | [[Süleyman Cenk Sahinalp ; Uzi Vishkin (Constructing Suffix Trees Constructing Suffix Trees)|Süleyman Cenk Sahinalp ; Uzi Vishkin]] || 1994 || $O(log^{2}(n)$) || $O(n^{({1}+\eps)})$ for any fixed eps>{0} || Exact || Parallel || [https://link.springer.com/content/pdf/10.1007/3-540-57811-0_3.pdf Time & Space] | ||
|- | |- | ||
| [[Farach (Constructing Suffix Trees Constructing Suffix Trees)|Farach]] || 1997 || $O(log n)$ || $O(n)$ || Exact || Randomized || [https://www.cs.rutgers.edu/~farach/pubs/PRAMSuffixICALP.pdf Time & Space] | | [[Farach (Constructing Suffix Trees Constructing Suffix Trees)|Farach]] || 1997 || $O(\log n)$ || $O(n)$ || Exact || Randomized || [https://www.cs.rutgers.edu/~farach/pubs/PRAMSuffixICALP.pdf Time & Space] | ||
|- | |- | ||
| [[Rytter (Constructing Suffix Trees Constructing Suffix Trees)|Rytter]] || 2004 || $O( | | [[Rytter (Constructing Suffix Trees Constructing Suffix Trees)|Rytter]] || 2004 || $O(\log n)$ || $O(n)$ || Exact || Parallel || [https://www.researchgate.net/publication/228945502_On_parallel_transformations_of_suffix_arrays_into_suffix_trees Time & Space] | ||
|- | |- | ||
| [[McCreight (Constructing Suffix Trees Constructing Suffix Trees)|McCreight]] || 1976 || $O(n)$ || $O(n)$ || Exact || Deterministic || [http://libeccio.di.unisa.it/TdP/suffix.pdf Time] | | [[McCreight (Constructing Suffix Trees Constructing Suffix Trees)|McCreight]] || 1976 || $O(n)$ || $O(n)$ || Exact || Deterministic || [http://libeccio.di.unisa.it/TdP/suffix.pdf Time] | ||
Line 43: | Line 43: | ||
[[File:Constructing Suffix Trees - Time.png|1000px]] | [[File:Constructing Suffix Trees - Time.png|1000px]] | ||
Latest revision as of 09:10, 28 April 2023
Description
Let $T = t_1 t_2 \cdots t_n, be a string over an alphabet $\Sigma$. Each string $x$ such that $T = uxv$ for some (possibly empty) strings $u$ and $v$ is a substring of $T$, and each string $T_i = t_i \cdots t_n$, where $1 \leq i \leq n + 1$ is a suffix of $T$; in particular, $T_{n+1} = \epsilon$ is the empty suffix. The set of all suffixes of $T$ is denoted $\sigma(T)$. The suffix trie $STrie(T)$ of $T$ is a trie representing $\sigma(T)$.
Suffix tree $STree(T)$ of $T$ is a data structure that represents $STrie(T)$ in space linear in the length $|T|$ of $T$. This is achieved by representing only a subset $Q' \cup \{ \perp \}$ of the states of $STrie(T)$.
Parameters
$n$: length of string
Table of Algorithms
Name | Year | Time | Space | Approximation Factor | Model | Reference |
---|---|---|---|---|---|---|
Naive | 1973 | $O(n^{2})$ | $O(n)$ | Exact | Deterministic | |
Weiner's algorithm | 1973 | $O(n)$ | $O(n)$ | Exact | Deterministic | Time |
Pratt | 1973 | $O(n)$ | Exact | Deterministic | ||
Ukkonen | 1995 | $O(n)$ | $O(n)$ | Exact | Deterministic | Time |
Ukkonen and D. Wood | 1993 | $O(n^{2})$ | $O(n^{2})$ | Exact | Deterministic | Time & Space |
Hariharan | 1997 | $O(log^{4}(n)$) | $O(n)$ | Exact | Parallel | Time & Space |
Süleyman Cenk Sahinalp ; Uzi Vishkin | 1994 | $O(log^{2}(n)$) | $O(n^{({1}+\eps)})$ for any fixed eps>{0} | Exact | Parallel | Time & Space |
Farach | 1997 | $O(\log n)$ | $O(n)$ | Exact | Randomized | Time & Space |
Rytter | 2004 | $O(\log n)$ | $O(n)$ | Exact | Parallel | Time & Space |
McCreight | 1976 | $O(n)$ | $O(n)$ | Exact | Deterministic | Time |