摘要: hopcroft法的复杂度,他们说是nlogn,可是都没有严格的证明。难得找到一篇讲的详细点的论文,却又啰里啰唆的,不过那篇论文里面采用的是颜色树这个结构,有点意思。前面的那个算法是n的平方复杂度,虽然这个复杂度计算都是建立在一些操作为单位时间操作的基础上。可是这些被认为的单位时间操作在我的实现中却有着平方复杂度,情何以堪,万恶的理论计算机科学家。hopcroft实现的代码,太长了,还没写完。不过核心的子集分割已经完成了,剩下的就是分配节点及重新构建邻接表。明天再说吧。 1 #include "dfa_to_dfa.h" 2 pdfa_edge* rev_dfa_table 阅读全文
posted @ 2013-06-28 21:43 huangnima 阅读(496) 评论(0) 推荐(0) 编辑
摘要: 上个版本测试的时候,只用了两个非常简单的测试用例,所以好多情况有问题却没有测试出来bug1:在生成diff_matrix的时候,循环变量少循环了一次,导致最后一个节点在如果无法与其他点合并的情况下,程序不会给他生成一个群标号。修改:把循环变量那里加上等于号bug2:在遍历群的时候,程序是以碰到空指针为结束的,但是在malloc内存的时候,系统并不为这个内存初始化为0,而是0xcd,所以以是不是空指针来判断边界是不可行的,会造成错误,导致读取了而外的信息。修改:在遍历群的时候,直接以群的数目来做条件测试bug3:在nfa转dfa的时候,如果某一个dfa节点在某一个字母上的转换导致了目标位图tem 阅读全文
posted @ 2013-06-28 09:58 huangnima 阅读(645) 评论(0) 推荐(0) 编辑