随笔分类 -  数据结构与算法

AVL 树
摘要:一棵AVL树是每个节点的左子树和右子树的高度最多差1的二叉查找树 阅读全文
posted @ 2017-09-06 09:10 啊哈咧 阅读(148) 评论(0) 推荐(0)
二叉查找树
摘要:结构体声明: 建立空树: 查找操作: FindMin实现: FindMax实现: Insert操作: Delete操作: 阅读全文
posted @ 2017-09-06 08:59 啊哈咧 阅读(150) 评论(0) 推荐(0)
最小生成树
摘要:Prim 算法:Prim 集,已添加至 Prim 树中顶点集,在每个迭代中加入边 (u, v) ,u 是 Prim 集中点, v 是集外点(最小边),将边加入,将 v 纳入 Prim 集中 Kruskal 算法:加入最小树边,不形成回路,伪代码 Prim, Kruskal算法求组成树的边最小 阅读全文
posted @ 2017-09-05 23:57 啊哈咧 阅读(122) 评论(0) 推荐(0)
单源最短路径问题-具有负边值的图
摘要:借助队列处理 阅读全文
posted @ 2017-09-05 23:56 啊哈咧 阅读(226) 评论(0) 推荐(0)
单源最短路径问题-Dijkstra算法
摘要:同样是层序遍历,在每次迭代中挑出最小的设置为已知 2017年9月18日10:00:03 dijkstra并不是完全的层序遍历,在第次迭代中挑出未遍历的最小的边,一种信心的应用 dijkstra算法是求带权单顶点到其他顶点的最短路径问题 表初始化 显示实际路径 算法伪代码 阅读全文
posted @ 2017-09-05 23:53 啊哈咧 阅读(235) 评论(0) 推荐(0)
二叉树
摘要:建立空树 查找 最小值 插入 删除 阅读全文
posted @ 2017-07-30 12:08 啊哈咧 阅读(131) 评论(0) 推荐(0)
单源最短路径问题-无权最短路径算法
摘要:该算法解决的问题是:找出一个顶点到其他顶点的最短路径 无权最短路径算法:借助广度优先搜索,距开始最近的那些顶点首先被赋值,而最远的顶点最后被赋值 伪码如下 阅读全文
posted @ 2017-07-30 11:17 啊哈咧 阅读(332) 评论(0) 推荐(0)
拓扑排序
摘要:对有向无边图的一种排序,它使得如果存在一条从 Vi 到 Vj 的路径,那么在排序中 Vj 出现在 Vi 后面 方法:找出任意一个没有入边的顶点开始,将其及其出度边删除,重复 伪码如下: 阅读全文
posted @ 2017-07-30 11:03 啊哈咧 阅读(134) 评论(0) 推荐(0)
二项队列
摘要:堆序树的集合,森林 二项树 Bk 由一个带有儿子 B1 B2 ... Bk-1 的根组成 ,高度为 k 的二项树恰好有 2^k 个节点 目标:用二项树的集合惟一表示任意大小的优先队列 树的合并只在乎有没有保持堆序性,兄弟节点间没有要求 编程就是要让自己像计算机思考,一次只考虑一个步骤 合并 2 个优 阅读全文
posted @ 2017-07-30 10:49 啊哈咧 阅读(203) 评论(0) 推荐(0)
散列
摘要:散列的关链是:散列函数和冲突解决 理想的散列表数据结构是由一个包含有关键字的具有固定大小的数组 散列函数:关键字到存储单元的映射 冲突解决:分离链接法 开放定址法 阅读全文
posted @ 2017-07-30 10:31 啊哈咧 阅读(154) 评论(0) 推荐(0)
摘要:在编程实现时可以利用额外的空间开销降低算法复杂度 表,即线性表,可用数组实现,或链表实现 链表实现有单链表,双向链表,和循环链表,基于链表的实现采用空结点方式心简化编程 栈的实现采用链表法,利用头插法,而数组实现保存其下标及容量可简化,通过下标取值 队列,数组实现:数组+头结点位置+尾结点位置+长度 阅读全文
posted @ 2017-07-30 10:27 啊哈咧 阅读(103) 评论(0) 推荐(0)
快速排序
摘要:/*插入排序交换来,交换去,每次次确定一个元素的位置*/void Quicksort(ElementType A[], int N) { Qsort(A, 0, N-1); } ElementType Median3(ElementType A[], int Left, int Right) { int Center = (Left + Right)/2; if (A[... 阅读全文
posted @ 2017-07-29 23:24 啊哈咧 阅读(111) 评论(0) 推荐(0)
归并排序
摘要:合并2个已排序的表 先将初始数组的两段完成排序后放在新数组中,再拷贝回去,由于采用递归方法处理,所以会将最下面的2个元素的先排序,1个的直接被返回了 这个过程一直重复直到完成 阅读全文
posted @ 2017-07-29 23:09 啊哈咧 阅读(117) 评论(0) 推荐(0)
堆排序
摘要:构建最大堆,将堆首和堆尾互换,重新构建长为N-1的堆,一直下去,最后得到升序的数组 在构建堆时,基于子树已经是一个堆的前提下,然后调整根的位置 阅读全文
posted @ 2017-07-29 22:57 啊哈咧 阅读(145) 评论(0) 推荐(0)
希尔排序
摘要:比较相距一定间隔的元素,间隔不断缩小 在每个步长的循环中,都是一个多次的比较,如: 0 step step*2... 1 step+1 step*2+1... ... 即在每个步长中,不求全部排好序,只求i(0 ~ N-1)开始的每个step为步长的分元素排好序 步长为1时,直接进行了插入排序 阅读全文
posted @ 2017-07-29 22:01 啊哈咧 阅读(106) 评论(0) 推荐(0)
插入排序
摘要:建立在前面的元素已经完成排序的基础上 阅读全文
posted @ 2017-07-29 20:46 啊哈咧 阅读(102) 评论(0) 推荐(0)