摘要: 迪杰斯特拉(Dijkstra)算法 是典型最短路径算法,用于计算一个节点到其他节点的最短路径。 它的主要特点是以起始点为中心向外层层扩展(广度优先搜索思想),直到扩展到终点为止。 算法思想: 通过Dijkstra计算图G中的最短路径时,需要指定起点s(即从顶点s开始计算)。此外,引进两个集合S和U。 阅读全文
posted @ 2018-02-03 23:59 渡万丈红尘 阅读(218) 评论(0) 推荐(0) 编辑
摘要: 深度优先搜索: DFS是一个递归的过程,算法思想:假设初始状态是图中所有顶点均未被访问,则从某个顶点v出发,首先访问该顶点,然后依次从它的各个未被访问的邻接点出发深度优先搜索遍历图,直至图中所有和v有路径相通的顶点都被访问到。 若此时尚有其他顶点未被访问到,则另选一个未被访问的顶点作起始点,重复上述 阅读全文
posted @ 2018-02-03 18:58 渡万丈红尘 阅读(143) 评论(0) 推荐(0) 编辑
摘要: Prim:适合边稠密的图 设置2个数据结构:MST lowcost 我们假设V1是起始点,进行初始化(lowcost[] 1 代表 无通路 lowcost[i]==0代表 顶点 i 加入到MST 中): V1 加入MST 比较 其余定点到 MST 内所有顶点的权值(即:其余顶点到V1) lowcos 阅读全文
posted @ 2018-02-03 18:35 渡万丈红尘 阅读(627) 评论(0) 推荐(0) 编辑
摘要: 编码: 1.统计需要编码的文件中每个字符出现的次数,并排序 2.选取出现次数最少的两个字符,把两者次数之和放入序列中; 3.重复操作 2 直到完成; 4.左子树权为0 右子树权为1; 举例: a 的编码为:00 b 的编码为:01 c 的编码为:100 d 的编码为:1010 e 的编码为:1011 阅读全文
posted @ 2018-02-03 17:45 渡万丈红尘 阅读(2086) 评论(0) 推荐(0) 编辑
摘要: 哈夫曼树又称最优二叉树,非叶子结点有且仅有两个子结点,哈夫曼树是带权路径长度最短的树,权值较大的结点离根较近。 构造:自下而上 假设有n个权值,则构造出的哈夫曼树有n个叶子结点。 n个权值分别设为 w1、w2、…、wn,则哈夫曼树的构造规则为: (1) 将w1、w2、…,wn看成是有n 棵树的森林( 阅读全文
posted @ 2018-02-03 17:13 渡万丈红尘 阅读(264) 评论(0) 推荐(0) 编辑