1. A method for building a suffix tree for a string of text or data, said method comprising: providing a processing device having an associated memory storage device, constructing, using said processing device, a set of prefixes (p) for said input string; building a suffix sub-tree (T p ) for each prefix (p) of said constructed prefix set in said associated memory utilizing a constructor method, said constructor method including tiling access to said string and tiling access to suffixes as they are being inserted in said sub-tree; and, merging said suffix sub-trees to form said suffix tree, wherein during suffix sub-tree building, a set of sub-strings being referenced by a partially constructed suffix sub-tree, and a set of suffixes being inserted into the sub-tree is maintained within a fixed memory budget within said associated memory storage.