数据结构&算法
文章平均质量分 54
happytengfei
编程爱好者——小牛
展开
-
整数压缩算法
1 0~255的整数可以只用一个字节表示,256~65535的数据只需2个字节,65536~16777215需要3个字节,16777216以上4个字节int uncompressed[] = {...}byte compressed[] = {...}Encode Integers:int outPos = 0, previous = 0;for (int inPos =原创 2012-07-16 12:01:30 · 1558 阅读 · 0 评论 -
常见的动态规划问题分析与求解
动态规划(Dynamic Programming,简称DP),虽然抽象后进行求解的思路并不复杂,但具体的形式千差万别,找出问题的子结构以及通过子结构重新构造最优解的过程很难统一,并不像回溯法具有解决绝大多数问题的银弹(全面解析回溯法:算法框架与问题求解)。为了解决动态规划问题,只能靠多练习、多思考了。本文主要是对一些常见的动态规划题目的收集,希望能有所帮助。难度评级受个人主观影响较大,仅供参考。转载 2013-11-25 19:30:15 · 908 阅读 · 0 评论 -
叠罗汉问题方案
马戏团里有个叠罗汉的表演,为了便于美观,下面的人身高和体重都要大于上面的人。现在知道n个演员的身高和体重,请问最多能叠多少层?1 首先生成一个有向图,用连接矩阵的方式来表示。map[i][j]==1表示第i个人上面可以放第j个人。然后开始对每个人进行深度搜索,这个图中不可能有环。所以对于每个人来说就是一棵树,搜索树的高度。2 动态规划Step 1.转载 2013-10-29 18:27:28 · 594 阅读 · 0 评论 -
查找两个已经排好序的数组的第k大的元素
查找两个已经排好序的数组的第k大的元素题目意思:给出两个排好序的数组 ,不妨设为a,b都按升序排列,及k的值,求出第k大的那个元素。分析这个题目,如果题目没有时间复杂度的要求,我们可以定义两个指针i,j分别指向a,b,如果a[i]j++,这个记录下走了多少步,如果==k步,则找到了第k大的元素,复杂度为O(k).那么如果有复杂度的要求,要求为O(log(len_a+le转载 2012-12-26 22:03:35 · 381 阅读 · 0 评论 -
【算法】文件的内容是否被更改
原文链接:http://en.wikipedia.org/wiki/Fingerprint_(computing)Fingerprint (computing)From Wikipedia, the free encyclopediaThis article is about general fingerprinting algorithms转载 2012-12-06 17:22:10 · 411 阅读 · 0 评论 -
C++ 电话薄 数据结构 查询算法
转自:http://hi.baidu.com/lvhxwhcuygafpyr/item/a0116973580a103f704423f7 下面关于电话薄用到的比较重要的数据结构,看完应该对电话薄有个比较清晰的认识。第一个问题 MTK系统中怎么存储电话薄的? (PhoneBook[MAX_PB_ENTRIES]) 电话薄中最重要的结构MMI_PHB_ENTRY_BCD_STRUCT PhoneB转载 2012-11-10 15:18:52 · 1188 阅读 · 0 评论 -
位运算
转自:http://graphics.stanford.edu/~seander/bithacks.htmlBit Twiddling HacksBy Sean Eron Andersonseander@cs.stanford.eduIndividually, the code snippets here are in the public domain (unless other转载 2012-10-10 13:12:54 · 576 阅读 · 0 评论 -
Aho-Corasicks算法 (AC自动机)
1 原文翻译:转自:http://nightelf.sinaapp.com/2012/%E8%AF%91%E6%96%87%EF%BC%9A%E3%80%8Abiosequence-algorithms-spring-2005-lecture-4-set-matching-and-aho-corasick-algorithm%E3%80%8B.html精确集合匹配问题中,我们需要在目标文本转载 2012-10-02 11:15:21 · 2754 阅读 · 0 评论 -
KD树
转自:http://www.cnblogs.com/snake-hand/archive/2012/08/13/2636236.htmlKd-树 其实是K-dimension tree的缩写,是对数据点在k维空间中划分的一种数据结构。其实,Kd-树是一种平衡二叉树。举一示例:假设有六个二维数据点 = {(2,3),(5,4),(9,6),(4,7),(8,1),(7,2)}转载 2012-09-12 17:41:04 · 853 阅读 · 0 评论 -
B树、B-树、B+树、B*树
转自:http://www.cnblogs.com/oldhorse/archive/2009/11/16/1604009.htmlB树 即二叉搜索树: 1.所有非叶子结点至多拥有两个儿子(Left和Right); 2.所有结点存储一个关键字; 3.非叶子结点的左指针指向小于其关键字的子树,右指针指向大于其关键字的子树;转载 2012-09-27 22:16:44 · 1816 阅读 · 0 评论 -
并查集
转自: http://blog.csdn.net/fisher_jiang/article/details/1116918转载 2012-08-28 22:23:37 · 243 阅读 · 0 评论 -
数据结构 + 算法 网址大全
http://algorithm.diy.myrice.com/ http://student.zjzk.cn/course_ware/data_structure/web/main.htm http://www.programfan.com/club/bbs.asp?bbsid=40http://community.csdn.net/Expert/topic/5020原创 2012-08-28 20:41:35 · 68 阅读 · 0 评论 -
Java 实现笛卡尔积
设计思路:笛卡尔积算法的Java实现: (1)循环内,每次只有一列向下移一个单元格,就是CounterIndex指向的那列。 (2)如果该列到尾部了,则这列index重置为0,而CounterIndex则指向前一列,相当于进位,把前列的index加一。 (3)最后,由生成的行数来控制退出循环。 实现代码1:public class Test {转载 2014-06-30 09:19:56 · 977 阅读 · 0 评论