随笔分类 -  数据结构

《数据结构与算法分析-c语言描述》
摘要:不相交集ADT 等价关系 等价关系是满足下列三个性质的关系R: 1. (自反性)对于所有的$a\in S,aRa$ 2. (对称性)aRb当且仅当bRa 3. (传递性)若aRb且bRc,则aRc. 动态等价性问题 一个元素$a\in S$的等价类是S的一个子集,它包含所有a有关系的元素。有两种运算 阅读全文
posted @ 2016-10-15 16:08 EvansYang 阅读(584) 评论(0) 推荐(0)
摘要:常见内部排序算法以及简要分析 插入排序 插入排序由N 1趟排序组成。对于P=1趟到P=N 1趟,插入排序保证从位置0到位置P上的元素是已排序状态。插入排序基于这样的事实:位置0到位置P 1上的元素是已经排过序的。 插入排序的平均运行时间是O(N^2)。如果输入数据已经预先排序则运行时间为O(N). 阅读全文
posted @ 2016-10-12 20:39 EvansYang 阅读(440) 评论(0) 推荐(0)
摘要:头插法翻转链表 阅读全文
posted @ 2016-09-29 11:49 EvansYang 阅读(1402) 评论(0) 推荐(0)
摘要:优先队列(堆) 优先对列数据模型至少需要允许一下两种操作:1.Insert(插入);2.DeleteMin(删除最小者) 最简单的实现方法是使用链表来实现,在表头进行插入,并遍历该链表进行删除最小元。插入以O(1)完成,但是删除将会是O(N)的时间花费。因此,我们需要别的实现方法 二叉堆 二叉堆具有 阅读全文
posted @ 2016-09-19 15:42 EvansYang 阅读(394) 评论(0) 推荐(0)
摘要:散列 散列表就是一个包含关键字的具有固定大小的数组。其优势在于以常数平均时间执行插入、删除和查找工作。 解决冲突 分离链接法:数组中包含的是一个链表,链表中的是冲突了的关键字 开放地址法:完全使用数组实现。如果有冲突发生,就尝试另外的单元,尝试h0(X),h1(X),h2(X),其中hi(X) = 阅读全文
posted @ 2016-09-14 13:30 EvansYang 阅读(150) 评论(0) 推荐(0)
摘要:AVL树的单旋与双旋 问题 AVL(Adenlson Velskii 和 Landis)树是带有平衡条件的二叉查找树。其平衡条件是每个节点的左子树和右子树的高度最多差1。 因为按照二叉查找树的性质(树中的每个节点X,它的左子树中所有的关键字值要小于X的关键字值,右子树相反),在AVL树中插入新的节点 阅读全文
posted @ 2016-09-11 14:59 EvansYang 阅读(1190) 评论(0) 推荐(0)