Algorithm
文章平均质量分 94
IIIIlllIIlll
这个作者很懒,什么都没留下…
展开
-
红黑树的理解与编写(c++实现)
红黑树的理解与c++编写 基础性质 红黑树是一种二叉搜索树,并且相对于二叉搜索树做了一定的改进。 红黑树具有下列五种性质: 根节点黑色。 每个节点为红色/黑色。 红色节点下两个节点必为黑色。 每一条从根至叶的路径上的黑节点数量相同。 每个叶节点都是黑的。 从五个性质可以得出的结论是,红黑树树内节点数n≥2h/2−1n≥2h/2−1n\ge2^{h/2}-1 证明省略,可以看C...原创 2018-04-17 22:32:34 · 8171 阅读 · 0 评论 -
AVL树的理解以及编写(C++)
AVL树 AVL树的定义 AVL树是一种高度平衡的二叉搜索树,对每一个节点而言它的左子树右子树高度差最多为1。一棵有n个节点的AVL树高度为O(lgn). AVL树基本操作 AVL树基本操作和一棵普通二叉树是一样的。一棵普通二叉树实现如下 二叉搜索树 而一棵AVL树满足二叉树的所有性质。所以譬如在寻找最大值(Maximum)、最小值(Minimum)时这类函数没有任何改动。 ...原创 2018-04-20 18:55:23 · 479 阅读 · 0 评论 -
动态规划思想以及最大回文串搜索
动态规划 动态规划思想应用于这样的一种情况:比如你发现你需要寻找x问题的最优解,然后x的最优解基于x的子问题的最优解;或者你发现在一次问题的解决过程中,你需要不断地解决同样的子问题。那么动态规划就可以派上用场。鉴于我在学习的过程中,重复了大量前辈们实现过的算法,我只在这里谈一谈我自己写的一个最大回文串搜索算法。 最大回文串搜索 回文串的定义就是一个字符串和他的倒序字符串一摸一样。 例如ch...原创 2018-05-17 15:31:59 · 280 阅读 · 0 评论 -
Huffman编码(C++)
贪心算法 贪心算法是huffman编码的基石,贪心算法简而言之就是:在每一步采取比较局部的视角,选择当前问题的最优解,从而递归得到整个问题的最优解。部分动态规划的题目可以简化为贪心算法题(在证明了相应的贪心算法正确性之后)。 Huffman编码 Huffman编码是一种压缩算法,应用了贪心算法。在介绍Huffman编码以及相关的贪心原理之前我们先介绍Huffman压缩算法的原理。 对于一个...原创 2018-05-22 15:34:09 · 1918 阅读 · 0 评论