本文小结下Zookeeper中4种数据事件(ZOO_CHANGED_EVENT, ZOO_CHILD_EVENT, ZOO_CREATED_EVENT, ZOO_DELETED_EVENT)的触发条件。
如下表所示:
事件
触发条件
Watcher设置函数
ZOO_CHANGED_EVENT
only generated by watches on nodes
zoo_exists / zoo_get
ZOO_CHILD_EVENT
only[......]
本文小结下Zookeeper中4种数据事件(ZOO_CHANGED_EVENT, ZOO_CHILD_EVENT, ZOO_CREATED_EVENT, ZOO_DELETED_EVENT)的触发条件。
如下表所示:
事件
触发条件
Watcher设置函数
ZOO_CHANGED_EVENT
only generated by watches on nodes
zoo_exists / zoo_get
ZOO_CHILD_EVENT
only[......]
这篇文章写的很好,主要是使用Zookeeper开发应用程序中遇到的一些很实际的问题。
转载自:《SO YOU WANT TO BE A ZOOKEEPER?》
This article is about some specific things I learned about Apache ZooKeeper. Apache ZooKeeper is useful if you are writing a distributed application and need coordi[......]
矩阵在数值运算中很常见,本节关注如何存储矩阵的元,从而使矩阵的各种运算能有效进行。
如果矩阵中有许多相同值的元素或者很多零元素。有时为了节省存储空间,可以对这类矩阵进行存储压缩,称为稀疏矩阵。更进一步的,如果稀疏矩阵的相同值或零元素分布还是有规律的,我们可以称他们为特殊矩阵。
对称矩阵
例如:
1 2 4
2 3 5
4 5 6
我们可以为每一对称元分配一个存储空间,即可以将n^2个元压缩存储到n*(n+1)/2个空间中。
假设在线性(一元)数组中存储,下[......]
int array[m][n];
这个二维数组,可以堪称是m个长度为n的一维数组。
在内存中排列的方式是[0][1]..[n-1] [0][1]...[n-1]....一共m组这样的。
在访问时,array[m][n] = *(*(array+m)+n),对N维的数组取值时要用到N个*。
参考了这个:http://blog.csdn.net/hai836045106/article/details/6729756[......]
设:m是模式串pattern的长度,n是主串长度
传统的字符串匹配(暴力法)的时间复杂度是O(n*m)。
而KMP串匹配算法可以将时间复杂度降为O(n+m),这需要一个额外的预处理O(m)。
KMP优化的地方在于:当出现字符失配的情况时,无需回溯i指针,而是利用已经匹配的部分,将模式串尽可能向右滑动一部分。
实际上:KMP的预处理本身就是一个模式串pattern“自我匹配”的过程。因此,预处理和kmp算法主体非常神似。
预处理过程:
int get_next(ch[......]