这是BLAST(基本局部比对搜索工具)图。如何计算其时间复杂度?
答案 0 :(得分:1)
BLAST算法步骤:
创建查询序列的长度为W的单词列表。
在数据库中搜索W字。
命中序列(即找到的序列)的延伸和得分分配。这些序列将通过局部比对给出。
采用所谓的HSP(高分细分对)。
第一步花费时间O(n),其中n是序列中元素的数量。
第二步是第一步中创建的单词的另一个循环(上限n),因此时间为O(n)
第三步分配命中分数。这只能逐个字母地完成,因此时间复杂度为O(n * m),其中m是查询词中字母的数目。作为上限,我们可以说时间是O(n ^ 2)
第四步是对获得的分数进行简单的循环,所以O(n)也是如此。
总而言之,该算法可以同化为O(n ^ 2),在m << n的情况下,我们可以说O(n * m)。下限是O(n)。