#串的简单模式匹配算法时间复杂度求解
#设主串长度为n 模式串为m
1.最坏时间复杂度是每个模式串都全部对比,并且遍历完整个主串,其结果为m*(n-m+1)即O(nm)
2.最好时间复杂度不应该是第一个子串就与模式串刚好匹配,返回值为1.
此时时间复杂度就是m,那不该是O(m)吗?为啥会是遍历完整个主串,结果是O(n)呢?不应该是O(m)<<O(n)吗?
求解答。
#串的简单模式匹配算法时间复杂度求解
#设主串长度为n 模式串为m
1.最坏时间复杂度是每个模式串都全部对比,并且遍历完整个主串,其结果为m*(n-m+1)即O(nm)
2.最好时间复杂度不应该是第一个子串就与模式串刚好匹配,返回值为1.
此时时间复杂度就是m,那不该是O(m)吗?为啥会是遍历完整个主串,结果是O(n)呢?不应该是O(m)<<O(n)吗?
求解答。
你把整个题都理解偏了
模式匹配,不是查找子串
是主串必须整个能够匹配模式串才算匹配成功
你只比对前半串,不管后半串,你怎么知道后半串不会有匹配不上的字符