摘要:
测试: 输入序列: 10 0 1 1 2 2 3 这样产生了长度为4的路径0->1->2->3。 阅读全文
posted @ 2017-03-16 22:40
我是老邱
阅读(406)
评论(0)
推荐(0)
摘要:
Yes, but it could increase the tree height, so the performance guarantee would be invalid. 阅读全文
posted @ 2017-03-16 21:23
我是老邱
阅读(238)
评论(0)
推荐(0)
摘要:
不可能。如果是weighted quick-union的话,6的父节点应该是5,而不是5的父节点是6。 阅读全文
posted @ 2017-03-16 21:11
我是老邱
阅读(304)
评论(0)
推荐(0)
摘要:
假设原id数组: 0 1 1 4 4 8 6 1 8 0 输入p = 5, q = 7 则输出结果会出错,最终为: 0 1 1 4 4 1 6 1 8 0 因为当id[p](id[5] = 8)被赋值为id[q](id[7] = 1)之后,再用if(id[i] == id[p])来判断id[8]时, 阅读全文
posted @ 2017-03-16 20:51
我是老邱
阅读(428)
评论(0)
推荐(0)
摘要:
算法(Algorithms)第4版 练习 1.5.1 算法(Algorithms)第4版 练习 1.5.2 阅读全文
posted @ 2017-03-16 20:40
我是老邱
阅读(271)
评论(0)
推荐(0)
摘要:
对于weighted quick-union,对每个输入数据对,其最大的循环次数为lgN(sites) 故对于109 sites和106 input pairs,其总的指令次数为:sum = lg10^9 * 10^6 * 10 总的时间为:T = sum / 10^9 = 0.1s(约等于) 阅读全文
posted @ 2017-03-16 20:26
我是老邱
阅读(320)
评论(0)
推荐(0)
摘要:
对于quick-find,对每个输入数据对,其最少的循环次数为N(sites) 故对于109 sites和106 input pairs,其总的指令次数为:sum = 10^9 * 10^6 * 10 总的时间为:T = sum / 10^9 / 3600 / 24 = 116 days 阅读全文
posted @ 2017-03-16 20:19
我是老邱
阅读(441)
评论(0)
推荐(0)
摘要:
代码实现: reference input: 结果: worst-case input: 结果: 阅读全文
posted @ 2017-03-16 19:47
我是老邱
阅读(378)
评论(0)
推荐(0)
摘要:
id数组和treesize数组变化情况: 森林图: 操作次数分析: find函数每次访问数组次数是1 + 2 * depth connected函数每次调用两次find函数 union函数每次调用两次find函数(如果两个连接点不在同一个树的话,则多一次数组访问) 对于这个client,对每个数据对 阅读全文
posted @ 2017-03-16 17:32
我是老邱
阅读(497)
评论(0)
推荐(0)
摘要:
森林图: 操作次数分析: find函数每次访问数组次数是1 + 2 * depth connected函数每次调用两次find函数 union函数每次调用两次find函数(如果两个连接点不在同一个树的话,则多一次数组访问) 对于这个client,对每个数据对,都调用一次connected函数和uni 阅读全文
posted @ 2017-03-16 16:50
我是老邱
阅读(570)
评论(0)
推荐(0)
摘要:
id数组的变化情况: 操作次数分析: find()函数每次调用访问数组1次。 connected函数每次调用两次find()函数,故访问数组2次。 union函数访问数组的次数为:2 + N + (1,N-1)。其中2为两次调用find()函数,N为N次数组判断,(1,N-1)为可能的数组替换次数。 阅读全文
posted @ 2017-03-16 15:38
我是老邱
阅读(931)
评论(0)
推荐(0)

浙公网安备 33010602011771号