2014年12月4日

《算法》C++代码 快速排序

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

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

《算法》C++代码 前言

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

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

《数据结构》C++代码 栈与队列

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

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

《数据结构》C++代码 堆(优先队列)

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

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

心中的大牛

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

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

《数据结构》C++代码 邻接表与邻接矩阵

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

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

《数据结构》C++代码 BFS与DFS

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

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

《数据结构》C++代码 散列表

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

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

《数据结构》C++代码 线性表

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

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

《数据结构》C++代码 Splay

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

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

《数据结构》C++代码 前言

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

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

导航