算法与数据结构
文章平均质量分 63
77CHONG77
聪明人也需要笨方法
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
hihoCoder #1014 Trie树
这是第一次在hihoCoder上刷题,对hihoCoder知道的也不是很多,只知道2015微软实习生在线笔试和网易游戏在线笔试都通过这个平台组织的。 下面简单说一下对hihoCoder的印象(只是个人直观的感觉,不论对错): 1、题目组织; hihoCoder题库的题全是课堂的形式组织出题,(好像)每周有一道,用户可以像参加随堂考试一样让你找回年轻时的感觉。 2、题目描述;原创 2015-04-05 22:34:27 · 627 阅读 · 0 评论 -
动态规划算法
本文转载自:动态规划算法一、基本概念 动态规划过程是:每次决策依赖于当前状态,又随即引起状态的转移。一个决策序列就是在变化的状态中产生出来的,所以,这种多阶段最优化决策解决问题的过程就称为动态规划。二、基本思想与策略 基本思想与分治法类似,也是将待求解的问题分解为若干个子问题(阶段),按顺序求解子阶段,前一子问题的解,为后一子问题的求解提供了有用的信息。在求解任一子转载 2015-07-22 09:38:03 · 496 阅读 · 0 评论 -
背包九讲
转载:dd_engi 的背包九讲目录第一讲 01背包问题第二讲 完全背包问题第三讲 多重背包问题第四讲 混合三种背包问题第五讲 二维费用的背包问题第六讲 分组的背包问题第七讲 有依赖的背包问题第八讲 泛化物品第九讲 背包问题问法的变化附:USACO中的背包问题前言本篇文章是我转载 2015-07-22 10:58:18 · 604 阅读 · 0 评论 -
静态查找结构概论
本文转自:静态查找结构概论在计算机许多应用领域中,查找操作都是十分重要的研究技术。查找效率的好坏直接影响应用软件的性能。比如说:(1) 全文检索技术中对文本建立索引之后,对索引的查找效率将决定搜索引擎的质量。(2) mysql数据库的索引就是B+树结构,查找效率极高。(3) Windows OS的文件系统结构也是采用B+树进行存储的。 在《查找算法》系列文章中,我将主要转载 2015-07-16 16:12:11 · 518 阅读 · 0 评论 -
二叉查找树(二叉排序树)的详细实现
1、序 当所有的静态查找结构添加和删除一个数据的时候,整个结构都需要重建。这对于常常需要在查找过程中动态改变数据而言,是灾难性的。因此人们就必须去寻找高效的动态查找结构,我们在这讨论一个非常常用的动态查找树——二叉查找树 。 本文详细实现了二叉查找树的各种操作:插入结点、构造二叉树、删除结点、查找、 查找最大值、查找最小值、查找指定结点的前驱和后继2、二叉查找树简介原创 2015-07-15 15:14:37 · 1125 阅读 · 0 评论 -
表达式树
表达式树表达式树的树叶是操作数,如常数或变量,而其他的节点是操作符,如果所有的操作符均是二元的,则构成一棵二叉树。表达式树的性质中序遍历 —-> 中缀表达式 后序遍历 —-> 后缀表达式 先序遍历 —-> 前缀表达式构造一棵表达式树把后缀表达式转变成表达式树 (由于中缀表达式可以转换成后缀表达式,所以也可以实现将中缀表达式转换成后缀表达式,然后再构造相应的表达式树)算法思想: 我们一次一个符原创 2015-07-15 15:11:39 · 635 阅读 · 0 评论 -
动态查找树比较
本文转载自:动态查找树比较我们这个专题介绍的动态查找树主要有: 二叉查找树(BST),平衡二叉查找树(AVL),红黑树(RBT),B~/B+树(B-tree)。这四种树都具备下面几个优势:(1) 都是动态结构。在删除,插入操作的时候,都不需要彻底重建原始的索引树。最多就是执行一定量的旋转,变换操作来有限的改变树的形态。而这些操作所付出的代价都远远小于重建一棵树。这一优势在《查找结构专题转载 2015-07-15 15:24:47 · 658 阅读 · 0 评论 -
桶排序
本文转载自: 爪哇人-桶排序从《基于比较的排序结构总结 》中我们知道:全依赖“比较”操作的排序算法时间复杂度的一个下界O(N*logN)。但确实存在更快的算法。这些算法并不是不用“比较”操作,也不是想办法将比较操作的次数减少到 logN。而是利用对待排数据的某些限定性假设 ,来避免绝大多数的“比较”操作。桶排序就是这样的原理。 桶排序的基本思想 假设有一转载 2015-07-09 23:00:41 · 561 阅读 · 1 评论 -
【转载】最长回文字符串(manacher算法)
原文转载自:http://blog.youkuaiyun.com/lsjseu/article/details/9990539 偶然看见了人家的博客发现这么一个问题,研究了一下午, 才发现其中的奥妙。Stupid。题目描述: 回文串就是一个正读和反读都一样的字符串,比如“level”或者“noon”等等就是回文串。 回文子串,顾名思义,即字符串中满足回文性质的子串。 给出一转载 2015-06-12 01:29:10 · 428 阅读 · 0 评论 -
Manacher算法:求解最长回文字符串,时间复杂度为O(N)
原文转载自:http://blog.youkuaiyun.com/yzl_rex/article/details/7908259回文串定义:“回文串”是一个正读和反读都一样的字符串,比如“level”或者“noon”等等就是回文串。回文子串,顾名思义,即字符串中满足回文性质的子串。经常有一些题目围绕回文子串进行讨论,比如POJ3974最长回文,求最长回文子串的长度。朴素算法是依次以每一个字符为中心向两侧进行扩展转载 2015-06-12 00:48:45 · 454 阅读 · 0 评论 -
格雷码的实现
问题:产生n位元的所有格雷码。格雷码(Gray Code)是一个数列集合,每个数使用二进位来表示,假设使用n位元来表示每个数字,任两个数之间只有一个位元值不同。例如以下为3位元的格雷码: 000 001 011 010 110 111 101 100 。如果要产生n位元的格雷码,那么格雷码的个数为2^n.假设原始的值从0开始,格雷码产生的规律是:第一步,改变最右边的转载 2015-09-22 23:40:05 · 576 阅读 · 0 评论
分享