---数据结构与算法---
ByaAym
这个作者很懒,什么都没留下…
展开
-
(三)树
一.相关概念 树:由根节点root和0个或多个非空子树组成。(N个节点和N-1条边) 节点相关术语:父亲、孩子、路径的长(两节点之间的边数)、节点深度(节点到根节点的路径的长,根depth为0)、节点度(节点连接的边数) 树相关术语:树的层数(=树的深度)有很多种树:二叉树、B-树、霍夫曼树。 其中二叉树应用比较多,主要是熟悉二叉树。 B-树的话用在数据库系统里面的磁盘存储。 霍夫曼树主原创 2017-02-28 22:45:21 · 297 阅读 · 0 评论 -
(一)算法分析
对于一个问题,给定某种算法并且确定其是正确的,那么重要的一步就是确定该算法将需要多少诸如时间或空间等资源量的问题。 1. 如何估计一个程序所需要的时间 2. 如何降低一个程序的运行时间 3. 递归的每一层迭代都应该比上一层消耗少 4. 将一个数自乘得到其幂以及计算两个数的最大公因数的有效算法一. 数学基础 假定两个函数T(N)=1000N,f(N)=N*N,在N较小时,1000N原创 2017-02-26 18:53:47 · 354 阅读 · 0 评论 -
(二)链表、栈和队列
1.抽象数据类型(ADT) 抽象数据类型(abstract data type,ADT)是一些操作的集合,模块化设计。如表、集合、图和它们的操作一起可以看作是抽象属性类型。2.表 包括数组实现与单链表,由于数组(连续存储)在插入和删除最坏情况是O(N),所以引入链表。 单链表:表头结点和普通结点,表头只是指向第一个元素的指针,普通结点包含表元素和该元素后继元的结构的指针(Nex原创 2017-02-26 23:23:18 · 295 阅读 · 0 评论 -
(四)排序
排序稳定性:有两个等值元素,在排序前后相对前后位置关系不变。 1.插入排序(InsertionSort) 由N-1趟排序组成,对于P=1到P=N-1,插入排序保证从0到P上的元素为已排序状态。 最坏时间复杂度为O(N^2),如果数组已经有序,则运行时间为O(N)。插入排序是稳定的。2.希尔排序(ShellSort) 先取一个正整数d1小于N,把所有序号相隔d1的数组元素放一组,组内进行直接插原创 2017-03-21 02:36:04 · 207 阅读 · 0 评论 -
(五)图
G=(V,E)由顶点(vertex)集合V和边(edge)集合E组成。 边有两个顶点构成,还有可能有权,路径是一个顶点序列w1,w2,…wn,路径的长是路径上的边数,等于n-1。 包括有向图和无向图,有向无圈图简称DAG(Directed Acyclic Graph) 。 如果一个无向图中从每一个顶点到每个其他顶点都存在一条路径,称该无向图是连通的。 具有这样性质的有向图称强连通图,如果一个原创 2017-03-23 21:30:30 · 485 阅读 · 0 评论