小说网 找小说 无限小说 烟雨红尘 幻想小说 酷文学 深夜书屋
上一页 1 ··· 82 83 84 85 86 87 88 89 90 ··· 102 下一页

2012年11月20日

VC++2012编程演练数据结构《33》希尔排序

摘要: 希尔排序(Shell Sort)是插入排序的一种。是针对直接插入排序算法的改进。该方法又称缩小增量排序,因DL.Shell于1959年提出而得名。先取一个小于n的整数d1作为第一个增量,把文件的全部记录分成(n除以d1)个组。所有距离为d1的倍数的记录放在同一个组中。先在各组内进行直接插入排序;然... 阅读全文

posted @ 2012-11-20 18:49 牛栏山1 阅读(120) 评论(0) 推荐(0) 编辑

VC++2012编程演练数据结构《32》桶排序

摘要: 桶排序假定:输入是由一个随机过程产生的[0, 1)区间上均匀分布的实数。将区间[0, 1)划分为n个大小相等的子区间(桶),每桶大小1/n:[0, 1/n), [1/n, 2/n), [2/n, 3/n),…,[k/n, (k+1)/n ),…将n个输入元素分配到这些桶中,对桶中元素进行排序,然后... 阅读全文

posted @ 2012-11-20 18:41 牛栏山1 阅读(122) 评论(0) 推荐(0) 编辑

VC++2012编程演练数据结构《31》狄杰斯特拉算法

摘要: 狄杰斯特拉算法 Dijkstra(狄杰斯特拉)算法是典型的单源最短路径算法,用于计算一个节点到其他所有节点的最短路径。主要特点是以起始点为中心向外层层扩展,直到扩展到终点为止。Dijkstra算法是很有代表性的最短路径算法,在很多专业课程中都作为基本内容有详细的介绍,如数据结构,图论,运筹学等等。... 阅读全文

posted @ 2012-11-20 18:28 牛栏山1 阅读(157) 评论(0) 推荐(0) 编辑

VC++2012编程演练数据结构《30》弗洛伊德算法

摘要: 弗洛伊德算法是基于动态规划的求解有负权图的单源最短路的一种较高效的算法。时间复杂度:O(n^3)空间复杂度:O(n^2)弗洛伊德算法采用图的带权邻接矩阵存储结构。算法基本思想 假设求顶点Vi到Vj的最短路径。弗洛伊德算法依次找从Vi到Vj,中间经过结点序号不大于0的最短路径,不大于1的最短路径,... 阅读全文

posted @ 2012-11-20 18:22 牛栏山1 阅读(133) 评论(0) 推荐(0) 编辑

VC++2012编程演练数据结构《29》图

摘要: 图是由结点的有穷集合V和边的集合E组成。其中,为了与树形结构加以区别,在图结构中常常将结点称为顶点,边是顶点的有序偶对,若两个顶点之间存在一条边,就表示这两个顶点具有相邻关系。 在上面两个图结构中,一个是有向图,即每条边都有方向,另一个是无向图,即每条边都没有方向。 在有向图中,通常将边称作弧... 阅读全文

posted @ 2012-11-20 18:00 牛栏山1 阅读(90) 评论(0) 推荐(0) 编辑

VC++2012编程演练数据结构《28》拓扑排序算法

摘要: 对一个有向无环图(Directed Acyclic Graph简称DAG)G进行拓扑排序,是将G中所有顶点排成一个线性序列,使得图中任意一对顶点u和v,若 ∈E(G),则u在线性序列中出现在v之前。什么是拓扑序列 通常,这样的线性序列称为满足拓扑次序(Topological Order)的序列,... 阅读全文

posted @ 2012-11-20 17:47 牛栏山1 阅读(88) 评论(0) 推荐(0) 编辑

VC++2012编程演练数据结构《26》最大堆二叉树

摘要: 最大堆是二叉堆的两种形式之一。 根结点(亦称为堆顶)的关键字是堆里所有结点关键字中最大者,称为大根堆,又称最大堆. 注意: ①堆中任一子树亦是堆。 ②以上讨论的堆实际上是二叉堆(Binary Heap),类似地可定义k叉堆最大堆和最小堆是二叉堆的两种形式。 最大堆:根结点的键值是所有堆结点键... 阅读全文

posted @ 2012-11-20 17:31 牛栏山1 阅读(91) 评论(0) 推荐(0) 编辑

VC++2012编程演练数据结构《27》最小堆二叉树

摘要: 最大堆和最小堆是二叉堆的两种形式。 最大堆:根结点的键值是所有堆结点键值中最大者。 最小堆:根结点的键值是所有堆结点键值中最小者。 而最大-最小堆集结了最大堆和最小堆的优点,这也是其名字的由来。 最大-最小堆是最大层和最小层交替出现的二叉树,即最大层结点的儿子属于最小层,最小层结点的儿子属... 阅读全文

posted @ 2012-11-20 17:29 牛栏山1 阅读(126) 评论(0) 推荐(0) 编辑

VC++2012编程演练数据结构《25》线索二叉树

摘要: 线索二叉树按照某种遍历方式对二叉树进行遍历,可以把二叉树中所有结点排序为一个线性序列。在该序列中,除第一个结点外每个结点有且仅有一个直接前驱结点;除最后一个结点外每一个结点有且仅有一个直接后继结点。这些指向直接前驱结点和指向直接后续结点的指针被称为线索(Thread),加了线索的二叉树称为线索二叉... 阅读全文

posted @ 2012-11-20 17:09 牛栏山1 阅读(139) 评论(0) 推荐(0) 编辑

VC++2012编程演练数据结构《24》哈夫曼树

摘要: 给定n个权值作为n个叶子结点,构造一棵二叉树,若带权路径长度达到最小,称这样的二叉树为最优二叉树,也称为哈夫曼树(Huffman tree)。哈夫曼树又称为最优树. 1、路径和路径长度 在一棵树中,从一个结点往下可以达到的孩子或子孙结点之间的通路,称为路径。通路中分支的数目称为路径长度。若规定... 阅读全文

posted @ 2012-11-20 16:52 牛栏山1 阅读(175) 评论(0) 推荐(0) 编辑

上一页 1 ··· 82 83 84 85 86 87 88 89 90 ··· 102 下一页

导航