算法系列15天速成
文章平均质量分 78
算法就好比程序开发中的利剑,所到之处,刀起头落。
m13666368773
这个作者很懒,什么都没留下…
展开
-
算法系列15天速成——第十五天 图【下】(大结局)
今天是大结局,说下“图”的最后一点东西,“最小生成树“和”最短路径“。 一: 最小生成树1. 概念 首先看如下图,不知道大家能总结点什么。 对于一个连通图G,如果其全部顶点和一部分边构成一个子图G1,当G1满足: ① 刚好将图中所有顶点连通。②顶点不存在回路。则称G1就是G的“生成树”。 其实一句话总结就是:生成树是将原图的全原创 2012-05-03 09:55:24 · 3248 阅读 · 3 评论 -
算法系列15天速成——第十四天 图【上】
今天来分享一下图,这是一种比较复杂的非线性数据结构,之所以复杂是因为他们的数据元素之间的关系是任意的,而不像树那样被几个性质定理框住了,元素之间的关系还是比较明显的,图的使用范围很广的,比如网络爬虫,求最短路径等等,不过大家也不要胆怯,越是复杂的东西越能体现我们码农的核心竞争力。 既然要学习图,得要遵守一下图的游戏规则。一: 概念 图是由原创 2012-05-03 09:50:08 · 3127 阅读 · 0 评论 -
算法系列15天速成——第十三天 树操作【下】
今天说下最后一种树,大家可否知道,文件压缩程序里面的核心结构,核心算法是什么?或许你知道,他就运用了赫夫曼树。听说赫夫曼胜过了他的导师,被认为”青出于蓝而胜于蓝“,这句话也是我比较欣赏的,嘻嘻。 一 概念 了解”赫夫曼树“之前,几个必须要知道的专业名词可要熟练记住啊。 1: 结点的权 “权”就相当于“重要度”,我们形象的用一个具体的原创 2012-05-03 09:45:51 · 2443 阅读 · 0 评论 -
算法系列15天速成——第十二天 树操作【中】
先前说了树的基本操作,我们采用的是二叉链表来保存树形结构,当然二叉有二叉的困扰之处,比如我想找到当前结点的“前驱”和“后继”,那么我们就必须要遍历一下树,然后才能定位到该“节点”的“前驱”和“后继”,每次定位都是O(n),这不是我们想看到的,那么有什么办法来解决呢? (1) 在节点域中增加二个指针域,分别保存“前驱”和“后继”,那么就是四叉链表了,哈哈,还是有点浪费空间啊。原创 2012-05-03 09:38:25 · 2325 阅读 · 0 评论 -
算法系列15天速成——第十一天 树操作(上)
最近项目赶的紧,歇了一个星期没写博客了,趁周末继续写这个系列。 先前我们讲的都是“线性结构”,他的特征就是“一个节点最多有一个”前驱“和一个”后继“。那么我们今天讲的树会是怎样的呢?我们可以对”线性结构“改造一下,变为”一个节点最多有一个"前驱“和”多个后继“。哈哈,这就是我们今天说的”树“。 一: 树 我们思维中的”树“就是一种枝繁叶茂的形象,那么数据原创 2012-05-03 09:35:18 · 3129 阅读 · 0 评论 -
算法系列15天速成——第十天 栈
今天跟大家聊聊栈,在程序设计中,栈的使用还是非常广泛的,比如有“括号匹配问题“,”html结构匹配问题“。所以说掌握了”栈“的使用,对我们学习算法还是很有帮助的。 一: 概念 栈,同样是一种特殊的线性表,是一种Last In First Out(LIFO)的形式,现实中有很多这样的例子, 比如:食堂中的一叠盘子,我们只能从顶端一个一个的取。 二:原创 2012-05-03 09:22:48 · 2309 阅读 · 0 评论 -
算法系列15天速成——第九天 队列
五一回老家待了几天,昨天晚上回来看见有很多网友留言,谢谢支持,继续写点东东奉献给大家 可能大家都知道,线性表的变种非常非常多,比如今天讲的“队列”,灰常有意思啊。 一:概念 队列是一个”先进先出“的线性表,牛X的名字就是“First in First Out(FIFO)”, 生活中有很多这样的场景,比如读书的时候去食堂打饭时的”排队“。当然我们拒原创 2012-05-03 09:16:27 · 2497 阅读 · 2 评论 -
算法系列15天速成——第八天 线性表【下】
一:线性表的简单回顾 上一篇跟大家聊过“线性表"顺序存储,通过实验,大家也知道,如果我每次向顺序表的头部插入元素,都会引起痉挛,效率比较低下,第二点我们用顺序存储时,容易受到长度的限制,反之就会造成空间资源的浪费。 二:链表 对于顺序表存在的若干问题,链表都给出了相应的解决方案。1. 概念:其实链表的“每个节点”都包含一个”数据域“和”指针域“。原创 2012-04-27 01:41:33 · 2380 阅读 · 0 评论 -
算法系列15天速成——第七天 线性表【上】
人活在社会上不可能孤立,比如跟美女有着千丝万缕的关系,有的是一对一,有的是一对多,有的是多对多。哈哈,我们的数据也一样,存在这三种基本关系,用术语来说就是: 线性关系。 树形关系。 网状关系。 一: 线性表 1 概念: 线性表也就是关系户中最简单的一种关系,一对一。 如:学生学号的原创 2012-04-27 01:36:32 · 2613 阅读 · 0 评论 -
算法系列15天速成——第六天 五大经典查找【下】
大家是否感觉到,树在数据结构中大行其道,什么领域都要沾一沾,碰一碰。就拿我们前几天学过的排序就用到了堆和今天讲的”二叉排序树“,所以偏激的说,掌握的树你就是牛人了。 今天就聊聊这个”五大经典查找“中的最后一个”二叉排序树“。 1. 概念: 其实很简单,若根节点有左子树,则左子树的所有节点都比根节点小。 若原创 2012-04-27 00:51:03 · 3186 阅读 · 1 评论 -
算法系列15天速成——第五天 五大经典查找【中】
大家可否知道,其实查找中有一种O(1)的查找,即所谓的秒杀。 哈希查找: 对的,他就是哈希查找,说到哈希,大家肯定要提到哈希函数,呵呵,这东西已经在我们脑子里面形成固有思维了。大家一定要知道“哈希“中的对应关系。 比如说: ”5“是一个要保存的数,然后我丢给哈希函数,哈希函数给我返回一个”2",那么此时的”5“和“2”就建立一种对应关系,这种关系就是所谓原创 2012-04-27 00:49:27 · 3552 阅读 · 0 评论 -
算法系列15天速成——第四天 五大经典查找【上】
在我们的生活中,无处不存在着查找,比如找一下班里哪个mm最pl,猜一猜mm的芳龄....... 对的这些都是查找。 在我们的算法中,有一种叫做线性查找。分为:顺序查找。 折半查找。 查找有两种形态:分为:破坏性查找, 比如有一群mm,我猜她们的年龄,第一位猜到了是23+,此时这位mm已经从我脑海里面的mmlist中remove掉了。原创 2012-04-27 00:46:58 · 8664 阅读 · 9 评论 -
算法系列15天速成——第三天 七大经典排序【下】
今天跟大家聊聊最后三种排序: 直接插入排序,希尔排序和归并排序。 直接插入排序: 这种排序其实蛮好理解的,很现实的例子就是俺们斗地主,当我们抓到一手乱牌时,我们就要按照大小梳理扑克,30秒后, 扑克梳理完毕,4条3,5条s,哇塞...... 回忆一下,俺们当时是怎么梳理的。 最左一张牌是3,第二张牌是5,第三张牌又是3,赶紧插到第一张牌后面去,第四原创 2012-04-26 00:53:52 · 3671 阅读 · 3 评论 -
算法系列15天速成——第二天 七大经典排序【中】
首先感谢朋友们对第一篇文章的鼎力支持,感动中....... 今天说的是选择排序,包括“直接选择排序”和“堆排序”。 话说上次“冒泡排序”被快排虐了,而且“快排”赢得了内库的重用,众兄弟自然眼红,非要找快排一比高下。这不今天就来了两兄弟找快排算账。 1.直接选择排序: 先上图: 说实话,直接选择排序最类似于人的本能思想,比如把大小不一的玩具让三岁小毛孩对原创 2012-04-25 12:43:44 · 3802 阅读 · 1 评论 -
算法系列15天速成——第一天 七大经典排序【上】
算法就好比程序开发中的利剑,所到之处,刀起头落。 针对现实中的排序问题,算法有七把利剑可以助你马道成功。 using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Diagnostics; using System.Thre原创 2012-04-24 10:51:55 · 8403 阅读 · 11 评论