Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/search/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Algorithm 后缀树搜索时间_Algorithm_Search_Complexity Theory_Suffix Tree - Fatal编程技术网

Algorithm 后缀树搜索时间

Algorithm 后缀树搜索时间,algorithm,search,complexity-theory,suffix-tree,Algorithm,Search,Complexity Theory,Suffix Tree,有人知道下面陈述的原因吗?还是有更好的网站来问这类问题?任何指示都将不胜感激 如果一个模式出现在长度为n k次的文本中,则在该文本的后缀树中搜索所有这些k次的模式将花费+k 后缀树搜索的时间长度与正在搜索的模式的长度成正比。如果您为密西西比州建立后缀树并搜索ssi。必须执行的查找将为3。时间取决于其中n是模式的长度。根据您在何处找到此语句,可能有特定的原因说明其在上下文中为真 然而,“+k”的常见原因只是需要Ok额外的操作来插入在返回给用户的结果列表中找到的每个匹配项。当使用倒排文件而不是后缀树

有人知道下面陈述的原因吗?还是有更好的网站来问这类问题?任何指示都将不胜感激

如果一个模式出现在长度为n k次的文本中,则在该文本的后缀树中搜索所有这些k次的模式将花费+k


后缀树搜索的时间长度与正在搜索的模式的长度成正比。如果您为密西西比州建立后缀树并搜索ssi。必须执行的查找将为3。时间取决于其中n是模式的长度。

根据您在何处找到此语句,可能有特定的原因说明其在上下文中为真

然而,“+k”的常见原因只是需要Ok额外的操作来插入在返回给用户的结果列表中找到的每个匹配项。当使用倒排文件而不是后缀树时,情况不一定如此,因为索引中找到的倒排列表(也称为postings列表)已经是最终结果列表,至少如果我们假设a查询仅由单个标记组成,b倒排列表未压缩存储

但是后缀树通常不包含这样的匹配列表,除非它是专门准备的。因此,在匹配过程中,您可以通过树标识一条路径,该路径在某个内部节点处结束。从这里开始,您必须遵循该内部节点的子树中的所有路径,以识别叶节点,这些叶节点告诉您每个匹配一个叶节点的匹配实际位置,并在返回给用户的结果列表中插入匹配位置。这最后一步需要时间


还要注意的是,跟踪找到的内部节点子树中的所有路径可能需要大量额外的时间,其中的总复杂度甚至高于On+k。这取决于是否存在从内部节点到其子树中叶节点的直接指针。

什么是模式?索引文本的子字符串?我知道。但是如果我想查找所有出现的ssi,时间变为+2,因为密西西比州有k=2次出现ssi,有人知道原因吗?顺便说一句,这里的n是文本的长度,而不是模式,我不这么认为,你所做的只是试图找到ssi是否存在。如果你想知道ssi发生的次数,听起来更像是一个反向索引问题。您不必在后缀树中存储ssi的两个独立分支。您可以将索引列表保留在分支节点之外。也许这就是+2的作用。