12 2014 档案

大二《数据结构》机考解题报告
摘要:这次学校数据结构机考,题目很奇怪,简直让我觉得这是算法考试……三道题,撑死了用到树的遍历和并查集,连个队列都没用,也是醉了-.-第一题 高精度加法 两个数相加,数最多5000位,也就是和最多5001位,而且连数的长度都会给。直接两个数组相加就好。第二题 给出树的前序、中序遍历,要求写出树的后... 阅读全文

posted @ 2014-12-25 15:36 IceDream61 阅读(677) 评论(0) 推荐(0) 编辑

《算法》C++代码 Dijkstra
摘要:单源最短路,复杂度是O(N²),堆优化的是O(NlogN)。基本思想是贪心,每次都加入一个当前最近的点,可以证明每次当时最近的点就是当前最短的路径。因此,所有点都加入之后,起点到所有点的最短路径就都求出来了。 在实现中,需要注意的是,在堆中的某个点i,不只要存当前到i的最短路径长度d[i],还... 阅读全文

posted @ 2014-12-24 16:16 IceDream61 阅读(377) 评论(0) 推荐(0) 编辑

《算法》C++代码 SPFA
摘要:SPFA的全称是Shortest Path Faster Algorithm,一看名称八成就是中国人起的名字,因为外国人起算法名称一般都会写上自己的名字,很少谦虚。实际上,这是西南交通大学段凡丁同学于1994年发表的,是针对Bellman-Ford算法的改进。在此不过多介绍背景,直接介绍SPF... 阅读全文

posted @ 2014-12-23 11:43 IceDream61 阅读(1880) 评论(0) 推荐(0) 编辑

《算法》C++代码 Floyd
摘要:今天写写最短路径的Floyd算法(有翻译叫弗洛伊德,不过这奇葩翻译用来读读就好……)。 这个算法的实质,广义来讲,其实是DP(动态规划)。其实按说,算法应该先说说什么贪心、搜索、DP、二分之类的基本算法的,但我觉得太广的东西对没有基础的人来说讲起来不清楚,还是先写写比较典型的一些算法比较好。而... 阅读全文

posted @ 2014-12-23 10:59 IceDream61 阅读(1955) 评论(0) 推荐(0) 编辑

《算法》C++代码 快速排序
摘要:快速排序,简称快排,常称QuickSort、QSort。在排序算法中非常常用,其编程复杂度低,时间复杂度O(NlogN),空间复杂度O(N),执行效率稳定,而且常数很低。 基本思想就是二分,例如你要将N个数排序,你调用了QSort(1,N)。那么快排会这样做: 1、找出一个数x 2、将N个数分成两部 阅读全文

posted @ 2014-12-04 17:07 IceDream61 阅读(3043) 评论(0) 推荐(0) 编辑

《算法》C++代码 前言
摘要:现在大二正在上《数据结构》课,课内的书上代码实现很喜欢无脑用类、变量名字很长,而且常常实现太繁琐,并且代码有些无法运行,这些对于老手无所谓,但初学者看起来却会很不舒服。因此写点自己的代码,大家可以借鉴一下,顺便自己总结一下热热手。 之前已经写了“《数据结构》C++代码”系列,但是由于课内安排了... 阅读全文

posted @ 2014-12-04 14:07 IceDream61 阅读(276) 评论(0) 推荐(0) 编辑

《数据结构》C++代码 栈与队列
摘要:线性表中,先进先出的叫队列,先进后出的叫栈。队列常用于BFS,而在函数递归层数过高时,需要手动实现递归过程,这时候便需要写一个“手动栈”。 有时候,我们会有大量数据频繁出入队列,但同时存在其内的元素却不多,此时需要写“循环队列”。其代码并不难,但里面下标递增的语句值得斟酌一下。k=(k+1)... 阅读全文

posted @ 2014-12-04 11:40 IceDream61 阅读(977) 评论(0) 推荐(0) 编辑

《数据结构》C++代码 堆(优先队列)
摘要:堆,是优先队列最常用的一种实现方式。在优先队列中,每个元素都被赋予了一个优先级,而每次出队时都让优先级最高的元素出队。堆,则是一种存储优先队列的方法,特指以一棵树形式存储的优先队列。最常用的是二叉堆,但既然是专门介绍数据结构,就不妨说全一些,我们取4个典型的堆进行比较,见下表(此表及表下备注,来自... 阅读全文

posted @ 2014-12-04 09:08 IceDream61 阅读(1018) 评论(0) 推荐(0) 编辑

心中的大牛
摘要:这篇博文仅仅是记录一下自己心目中的大牛博客,方便自己浏览,也方便大家有兴趣的来逛逛。也没有什么领域之分,仅仅是作为(曾经)博客的第一篇博文开篇罢了。此文会实时更新的~特别声明,本文排名不分先后,全凭心情-.-||1、http://wjmzbmr.com/陈立杰,相信搞过OI/ACM的人更喜欢叫他CL... 阅读全文

posted @ 2014-12-04 08:56 IceDream61 阅读(646) 评论(2) 推荐(0) 编辑

《数据结构》C++代码 邻接表与邻接矩阵
摘要:上一篇“BFS与DFS”写完,突然意识到这个可能偏离了“数据结构”的主题,所以回来介绍一下图的存储:邻接表和邻接矩阵。 存图有两种方式,邻接矩阵严格说就是一个bool型的二维数组,map[i][j]表示i到j有没有单向边,邻接表则是对1~N中每个点都拉出一个链表来,链表E[i]中存的每个点j都表示... 阅读全文

posted @ 2014-12-04 08:55 IceDream61 阅读(2315) 评论(0) 推荐(0) 编辑

《数据结构》C++代码 BFS与DFS
摘要:BFS,广度优先搜索,一层一层去遍历图,故称广度优先。实现方式:队列。 DFS,深度优先搜索,撞墙才回头的遍历,称为深度优先。实现方式:递归(栈)。 这两种遍历方式,是访问图的基本方式。如果拿树做对比的话,BFS对应层次遍历,DFS则对应三种基本遍历方法(先序、中序、后序);遍历树起点只有一个根,... 阅读全文

posted @ 2014-12-04 08:51 IceDream61 阅读(1626) 评论(0) 推荐(0) 编辑

《数据结构》C++代码 散列表
摘要:散列表,又名哈希表、Hash表。这是一个神奇的数据结构,它的复杂度是常数级别,由于我非常喜欢这个数据结构,在此简单介绍一下。 (没有学过Hash表的同学,我推荐一个教程:http://www.cnblogs.com/jiewei915/archive/2010/08/09/1796042.html... 阅读全文

posted @ 2014-12-04 08:45 IceDream61 阅读(879) 评论(0) 推荐(0) 编辑

《数据结构》C++代码 线性表
摘要:线性表,分数组和链表两种(官方名称记得是叫顺序存储和链式存储)。代码里天天用,简单写写。 首先是数组,分静态、动态两种,没什么可说的,注意动态的要手动释放内存就好了。 其次是链表,依旧分静态、动态。课内一般都是讲的是动态实现,但其实还有一种静态实现方法。动态实现剩内存,但是静态实现剩时间,考试的时... 阅读全文

posted @ 2014-12-04 08:42 IceDream61 阅读(785) 评论(0) 推荐(0) 编辑

《数据结构》C++代码 Splay
摘要:Splay,伸展树。之所以先写这个课内并不怎么常用的数据结构,是因为本人非常喜欢Splay,我觉得这是非常有美感且灵活的一种平衡树。在此先声明,我的伸展树写法来源于CLJ大牛,基础好的同学可以去他的博客中看看他的Splay实现模板,我的实现仅仅借鉴了CLJ大神的一点实现技巧而已。我的博文《心中的大... 阅读全文

posted @ 2014-12-04 08:37 IceDream61 阅读(730) 评论(0) 推荐(1) 编辑

《数据结构》C++代码 前言
摘要:现在大二正在上《数据结构》课,课内的书上代码实现很喜欢无脑用类、变量名字很长,而且常常实现太繁琐,并且代码有些无法运行,这些对于老手无所谓,但初学者看起来却会很不舒服。因此写点自己实现这些数据结构的代码,大家可以借鉴一下,顺便自己总结一下热热手。 之前已经发了几篇博文,但是由于是第一次写博客... 阅读全文

posted @ 2014-12-04 08:18 IceDream61 阅读(224) 评论(0) 推荐(0) 编辑

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

导航

统计

点击右上角即可分享
微信分享提示