【08】数据结构与算法
文章平均质量分 82
_小青年儿_
优秀是一种习惯
展开
-
字典树
Trie,又称字典树、单词查找树,是一种树形结构,用于保存大量的字符串。它的优点是:利用字符串的公共前缀来节约存储空间。相对来说,Trie树是一种比较简单的数据结构.理解起来比较简单,正所谓简单的东西也得付出代价.故Trie树也有它的缺点,Trie树的内存消耗非常大.当然,或许用左儿子右兄弟的方法建树的话,可能会好点.其基本性质可以归纳为:1. 根节点不包含字符,除根节点外每一个节点都只包含一个字符。 2. 从根节点到某一节点,路径上经过的字符连接起来,为该节点对应的字符串。 3. 每个节点的所有子节点包含原创 2011-04-27 09:57:00 · 1060 阅读 · 1 评论 -
hash算法
散列表,它是基于快速存取的角度设计的,也是一种典型的“空间换时间”的做法。顾名思义,该数据结构可以理解为一个线性表,但是其中的元素不是紧密排列的,而是可能存在空隙。散列表(Hash table,也叫哈希表),是根据关键码值(Key value)而直接进行访问的数据结构。也就是说,它通过把关键码值映射到表中一个位置来访问记录,以加快查找的速度。这个映射函数叫做散列函数,存放记录的数组叫做散列原创 2013-08-10 21:11:00 · 991 阅读 · 0 评论 -
平衡二叉树
平衡二叉树:AVL Tree(1962) 让我们看看代码实践。 主要理解一下这段代码 对该函数进行图解。 平衡二叉树:AVL Tree(1962) 我们只实现了单旋,但是实际中为原创 2013-08-10 21:17:22 · 1021 阅读 · 0 评论 -
动态规划算法——乘法表问题
问题描述:定义于字母表∑{a,b,c)上的乘法表如表1所示表1∑乘法表 a b ca b b ab c b ac a c c依此乘法表,对任一定义于∑上的字符串,适当加括号表达式后得到一个表达式。例如,对于字符串x=bbbba,它的一个加括号表达式为i(b(bb))(ba)。依乘法表,该表达式的值为a。试设计一个动态规划算法,对任一原创 2013-05-26 13:40:16 · 3579 阅读 · 1 评论 -
编辑距离问题
1、问题描述: ?设A 和B 是2 个字符串。要用最少的字符操作将字符串A 转换为字符串B。这 里所说的字符操作包括 (1)删除一个字符; (2)插入一个字符; (3)将一个字符改为另 一个字符。将字符串A变换为字符串B 所用的最少字符操作数称为字符串A到B 的编 辑距离,记为 d(A,B)。试设计一个有效算法,对任给的2 个字符串A和B,计算出它原创 2013-06-04 21:30:46 · 1501 阅读 · 0 评论 -
排序算法总结
所谓排序稳定就是指:如果两个数相同,对他们进行的排序结果为他们的相对顺序不变。例如A={1,2,1,2,1}这里排序之后是A = {1,1,1,2,2} 稳定就是排序后第一个1就是排序前的第一个1,第二个1就是排序前第二个1,第三个1就是排序前的第三个1。同理2也是一样。这里用颜色标明了。不稳定呢就是他们的顺序不应和开始顺序一致。也就是可能会是A={1,1,1,2,2}这样的结果。————原创 2012-07-29 12:30:28 · 1115 阅读 · 0 评论 -
Dijkstra算法
1 最短路径算法在日常生活中,我们如果需要常常往返A地区和B地区之间,我们最希望知道的可能是从A地区到B地区间的众多路径中,那一条路径的路途最短。最短路径问题是图论研究中的一个经典算法问题, 旨在寻找图(由结点和路径组成的)中两结点之间的最短路径。 算法具体的形式包括:(1)确定起点的最短路径问题:即已知起始结点,求最短路径的问题。(2)确定终点的最短路径问题:与确定起点原创 2012-01-05 18:41:18 · 1270 阅读 · 1 评论 -
查找算法总结
查找算法 一、查找的基本概念查找,也可称检索,是在大量的数据元素中找到某个特定的数据元素而进行的工作。查找是一种操作。 二、顺序查找针对无序序列的一种最简单的查找方式。时间复杂度为O(n)。 三、折半查找针对已排序序列的一种查找方式。并且只适用于顺序存储结构的序列。要求序列中的元素基本不变,在需要做删除和插入操作的时原创 2012-07-29 14:08:41 · 1160 阅读 · 0 评论 -
A*算法
在介绍 A* 算法前,先提一下广度优先搜索,广度优先搜索就是每次将当前状态可能发展的策略逐层展开,比如一个地图中,对象允许向四个方向移动, 那么,就将地点处,对象向上下左右各移动一步, 将四个状态都保存在内存中, 然后再从这四个出发点向各自的四个方向再移动一步... (当然这里可以剔除不合理的移动方法,比如不准向回移动) 实际上, 整个搜索好似一个圆形向外展开,直到到达目的地,很明显这样求解一定能原创 2012-01-05 18:47:29 · 1039 阅读 · 0 评论 -
最短路径
最短路径最短路径恐怕是图的各种算法中最能吸引初学者眼球的了——在地图上找一条最短的路或许每个人都曾经尝试过。下面我们用计算机来完成我们曾经的“愿望”。在图的算法中有个有趣的现象,就是问题的规模越大,算法就越简单。图是个复杂的结构,对于一个特定问题,求解特定顶点的结果都会受到其他顶点的影响——就好比一堆互相碰撞的球体,要求解特定球体的状态,就必须考虑其他球体的状态。既然每个顶点都要扫原创 2012-01-05 18:49:34 · 1004 阅读 · 0 评论 -
红黑树算法解析
红黑树系列,六篇文章于今日已经完成:1、教你透彻了解红黑树2、红黑树算法的实现与剖析3、红黑树的c源码实现与剖析4、一步一图一代码,R-B Tree5、红黑树插入和删除结点的全程演示6、红黑树的c++完整实现源码------------------------------ 一、红黑树的介绍先来看下算法导论对R-B Tree的介绍:红黑树,一种二叉查找树,但在每个结点上增原创 2014-12-31 19:51:48 · 1249 阅读 · 0 评论