本节讲的是并查集的第一种实现方法,这种方法查找操作开销很小而合并操作开销比较大。
数据结构
假设有N个节点,那么该算法的数据结构就是一个包含N个整数的数组id[]。
判断操作
判断节点p和节点q是否相连就是判断id[p]和id[q]的值是否一致。
合并操作
合并节点p和节点q就是将id数组中所有的id[...
分类:
其他好文 时间:
2014-06-01 14:55:21
阅读次数:
202
本节讲的是并查集的另外一种实现方法。这种方法的合并操作开销很小,但是查找操作开销很大。
数据结构
这种算法的数据结构和快速查找方法的数据结构是一样的,也是N个整数组成的数组。
数组中每个元素id[i]的含义是指i的上级是id[i]。
根节点
一个节点的根节点就是id[id[id[...id[i]....]]],一直循...
分类:
其他好文 时间:
2014-06-01 14:52:52
阅读次数:
225
六种常见按位运算符:按位与(&)、按位或(|)、按位异或(^)、按位非(~)、按位左移(>).
这些运算符都只能用于整数类型,~是一元运算符,其他都是二元运算符。
1、按位与(&):合并操作数的对应为,如果两个位都是1,结果为1;否则,结果为0.如:
x 00001101
y 00000110
x&y 00000100
2、按位或(|):对应位中的两位都是0,则结...
分类:
其他好文 时间:
2014-05-13 08:34:52
阅读次数:
224
[可并堆与左偏树]我们最常用的二叉堆,是最常用的优先队列,它可以在O(logN)内实现插入和删除最小值操作。但是对于合并两个有序的优先队列,二叉堆就显得力不从心了。左偏树是一种可并堆(MergeableHeap),意思是可以在O(logN)时间内完成两个堆的合并操作。左偏树(LeftistTree)...
分类:
其他好文 时间:
2014-05-12 00:51:29
阅读次数:
292
应用需求:
在网盘开发过程中有这样一个需求,即对文件版本进行控制,即记录文件版本的更替信息,这里说的更替信息仅仅是记录不同时刻的文件变化,即文件的增、删、改、重命名等操作。在每个待监控的目录下都会保存一份文件,记录文件变化的增量信息,每次低版本到高版本升级的时候就可以通过消元合并操作快速地进行。关于文件版本控制的具体实现方案会在开发完善后列出,这里仅仅指出它的保存方式,即将文件操...
分类:
其他好文 时间:
2014-05-10 03:37:35
阅读次数:
368
以前做项目的时候没有用过svn的分支合并操作,今天用到了,刚开始还真不会啊。最后查了下就是这么的方便。专门记录下来。
原文来自:http://blog.csdn.net/lisq037/article/details/17501327 还可以参考如下几篇文章
http://toptree.iteye...
分类:
系统相关 时间:
2014-05-08 15:19:14
阅读次数:
348