随笔分类 -  algorithm

对算法理论的学习、实践
摘要:LZW和哈夫曼编码一样,是无损压缩中的一种。该算法通过建立字典,实现字符重用与编码,适用于source中重复率很高的文本压缩。本文首先讲下LZW的编解码原理,然后给出LZW的实现code。*********************原理*********************编码:编码0-255用来... 阅读全文
posted @ 2015-11-07 15:13 橙&子 阅读(1647) 评论(0) 推荐(0)
摘要:B树的定义 假设B树的度为t(t>=2),则B树满足如下要求:(参考算法导论)(1)每个非根节点至少包含t-1个关键字,t个指向子节点的指针;至多包含2t-1个关键字,2t个指向子女的指针(叶子节点的子女为空)。(2)节点的所有key按非降序存放,假设节点的关键字分别为K[1], K[2] … K... 阅读全文
posted @ 2015-08-27 11:01 橙&子 阅读(3951) 评论(0) 推荐(0)
摘要:B-树是一种多路搜索树(并不是二叉的): 1.定义任意非叶子结点最多只有M个儿子;且M>2; 2.根结点的儿子数为[2, M]; 3.除根结点以外的非叶子结点的儿子数为[M/2, M]; 4.每个结点存放至少M/2-1(取上整)和至多M-1个关键字;(至少2个关键字) 5.非叶子结点的关键字个数=指... 阅读全文
posted @ 2015-08-27 11:00 橙&子 阅读(740) 评论(0) 推荐(0)
摘要:该文转自《最小生成树-Prim算法和Kruskal算法》Prim算法1.概览普里姆算法(Prim算法),图论中的一种算法,可在加权连通图里搜索最小生成树。意即由此算法搜索到的边子集所构成的树中,不但包括了连通图里的所有顶点(英语:Vertex (graph theory)),且其所有边的权值之和亦为... 阅读全文
posted @ 2015-06-23 11:28 橙&子 阅读(626) 评论(0) 推荐(1)
摘要:题目:请给出一个时间复杂度为nlogn的算法,使之能够在给定一个由n个整数的构成的整合S和另一个整数x时,判断出S中是否存在有两个其和等于x的元素。算法思想:1.先运用合并排序进行排序 O(nlgn),2.然后运用二分查找法寻找y,y = x - a[i],算法的时间复杂度小于nlogn,所以总的时... 阅读全文
posted @ 2014-12-13 18:24 橙&子 阅读(1537) 评论(1) 推荐(0)
摘要:Floyd-Warshall算法,简称Floyd算法,用于求解任意两点间的最短距离,时间复杂度为O(n^3)。我们平时所见的Floyd算法的一般形式如下:1 void Floyd()2 {3 int i,j,k;4 for(k=1;k,则c[i, j, 0] =边 的长度;若i... 阅读全文
posted @ 2014-10-27 17:20 橙&子 阅读(481) 评论(0) 推荐(0)