随笔分类 -  算法

摘要:地址http://blog.csdn.net/chen77716/article/details/6166675中文wikihttp://zh.wikipedia.org/zh-cn/Paxos%E7%AE%97%E6%B3%95在分布式系统设计领域,Paxos可谓是最重要一致性的算法。连Googl... 阅读全文
posted @ 2014-04-21 15:53 balaamwe 阅读(312) 评论(0) 推荐(0) 编辑
摘要:http://www.ibm.com/developerworks/cn/linux/l-cn-gpb/简介什么是 Google Protocol Buffer? 假如您在网上搜索,应该会得到类似这样的文字介绍:Google Protocol Buffer( 简称 Protobuf) 是 Google 公司内部的混合语言数据标准,目前已经正在使用的有超过 48,162 种报文格式定义和超过 12,183 个 .proto 文件。他们用于 RPC 系统和持续数据存储系统。Protocol Buffers 是一种轻便高效的结构化数据存储格式,可以用于结构化数据串行化,或者说序列化。它很适合做数据存 阅读全文
posted @ 2013-03-05 16:30 balaamwe 编辑
摘要:http://zlx19900228.iteye.com/blog/1058659在了解group varint算法之前,应该对varint有所了解。What is varint?根据googlehttp://code.google.com/apis/protocolbuffers/docs/encoding.html的官方解释可以很清晰的了解到,它是一种用1个或多个字节序列化integer的一种方法,Smaller numbers take a smaller number of bytes.传统的integer是以32位来表示的,存储需要4个字节,当如果整数大小在256以内,那么只需要用一 阅读全文
posted @ 2013-03-05 16:08 balaamwe 编辑
摘要:http://www.repairfaq.org/filipg/LINK/F_crc_v31.htmlContents:[Sub-ToC] for this document | Main [Table 'O Contents]1. Preface1.1) About the Author & Copyright1.2) Abstract2. Introduction: Error Detection3. The Need For Complexity4. The Basic Idea Behind CRC Algorithms5. Polynomical Arithmetic 阅读全文
posted @ 2012-11-28 15:27 balaamwe 编辑
摘要:1.CRC简介CRC(cyclical redundancy check) 循环冗余校验,在《计算机组成原理》里面有这个知识点。类似的校验有奇偶校验。可以简单的理解成在发送数据后面加上这个验证码,判断前面数据是否正确。根据需要的校验位数不同,有 CRC8、CRC16、CRC32、CRC128 ...再以后就不用这个乐,可以使用md5校验。2.简介CRC校验步骤CRC的校验方法网上很多。就说了,用发送的数据来除以校验公式,使其最后的余数为0。3.举例字母a的CRC16校验(CRC-CCITT)采用的校验公式为 G(X) = X16 + X12 + X5 + 1CRC16校验产生的校验码为16位, 阅读全文
posted @ 2012-11-28 15:23 balaamwe 编辑
摘要:模2运算是一种二进制算法,CRC校验技术中的核心部分,因此,我们在分析CRC算法之前,必须掌握模2运算的规则。与四则运算相同,模2运算也包括模2加、模2减、模2乘、模2除四种二进制运算。而且,模2运算也使用与四则运算相同的运算符,即“+”表示模2加,“-”表示模2减,“×”或“·”表示模2乘,“÷”或“/”表示模2除。与四则运算不同的是模2运算不考虑进位和借位,即模2加法是不带进位的二进制加法运算,模2减法是不带借位的二进制减法运算。这样,两个二进制位相运算时,这两个位的值就能确定运算结果,不受前一次运算的影响,也不对下一次造成影响。①模2加法运算定义为:0+0= 阅读全文
posted @ 2012-11-28 14:39 balaamwe 编辑
摘要:作者:Dong|可以转载, 但必须以超链接形式标明文章原始出处和作者信息及版权声明网址:http://dongxicheng.org/structure/red-black-tree/1. 简介红黑树是一种自平衡二叉查找树。它的统计性能要好于平衡二叉树(AVL树),因此,红黑树在很多地方都有应用。在C++ STL中,很多部分(目前包括set, multiset, map, multimap)应用了红黑树的变体(SGI STL中的红黑树有一些变化,这些修改提供了更好的性能,以及对set操作的支持)。它是复杂的,但它的操作有着良好的最坏情况运行时间,并且在实践中是高效的: 它可以在O(log n) 阅读全文
posted @ 2012-05-16 11:56 balaamwe 编辑
摘要:http://blog.csdn.net/v_JULY_v/article/details/6530142从B树、B+树、B* 树谈到R树作者:July、weedge、Frankie。编程艺术室出品。说明:本文从B树开始谈起,然后论述B+树、B*树,最后谈到R树。其中B树、B+树及B*树部分由weedge完成,R树部分由Frankie完成,全文最终由July统稿修订完成。出处:http://blog.csdn.net/v_JULY_v。第一节、B树、B+树、B*树1.前言:动态查找树主要有:二叉查找树(Binary Search Tree),平衡二叉查找树(Balanced Binary Se 阅读全文
posted @ 2012-04-25 19:06 balaamwe 编辑
摘要:http://hi.baidu.com/rodimus/blog/item/c5455c389b168323b8998f18.html前面讨论的都是在源串里寻找单一的串。如果要同时寻找同个串的话,可以每个串都用一次单串的算法。这是可行的,只是效率上比较低。可以对前面的单串算法作适当的扩展,使它直接适应多串的情况。对于Shift-And算法,可以直接把几个串拼成一个串,当然前题是这些串的长度和小于等于计算机的字长。然后对初始状态作一下修改,对结束时判断是否成功作一下修改。就可以了。代码如下:(未测试)Multiple_Shift_And(char * s, int n, char ** p, i 阅读全文
posted @ 2011-12-12 17:27 balaamwe 编辑