摘要: 1. 简单概述 回溯法思路的简单描述是:把问题的解空间转化成了图或者树的结构表示,然后使用深度优先搜索策略进行遍历,遍历的过程中记录和寻找所有可行解或者最优解。 基本思想类同于: 图的深度优先搜索 二叉树的后序遍历 【 分支限界法:广度优先搜索 思想类同于:图的广度优先遍历 二叉树的层序遍历 】 2 阅读全文
posted @ 2020-11-12 21:42 Chen洋 阅读(774) 评论(0) 推荐(0)
摘要: 1、问题描述 给定带权有向图G =(V,E),其中每条边的权是非负实数。另外,还给定V中的一个顶点,称为源。现在要计算从源到所有其他各顶点的最短路长度。这里路的长度是指路上各边权之和。这个问题通常称为单源最短路径问题。 2、Dijkstra算法 Dijkstra算法是解单源最短路径问题的贪心算法。 阅读全文
posted @ 2020-11-12 19:53 Chen洋 阅读(2000) 评论(0) 推荐(0)
摘要: 问题描述: 设有n个独立的作业,由m台相同的机器进行加工处理。作业i所需的处理时间为t[i]。 任何作业可以在任何一台机器上面加工处理,但未完工之前不允许中断处理。任何作业不能拆分成更小的作业。 要求给出一种作业调度方案,使所给的n个作业在尽可能短的时间内由m台机器加工处理完成。 这个问题是NP完全 阅读全文
posted @ 2020-11-12 19:09 Chen洋 阅读(2951) 评论(0) 推荐(3)
摘要: 最小生成树 性质:n个节点生成的最小生成树有n-1条边 & 最小生成树里多加一条边能生成含该边的一个环 构造方法:Prim算法 & Kruskal算法 一、Prim算法:逐个点连通的方式构造最小生成树(时间复杂度O(n*n),适合稠密图) 稀疏图&稠密图:有很少条边或弧(边的条数|E|远小于|V|² 阅读全文
posted @ 2020-11-12 16:55 Chen洋 阅读(1800) 评论(0) 推荐(0)
摘要: 1、问题描述 哈夫曼编码是广泛地用于数据文件压缩的十分有效的编码方法。其压缩率通常在20%~90%之间。哈夫曼编码算法用字符在文件中出现的频率表来建立一个用0,1串表示各字符的最优表示方式。一个包含100,000个字符的文件,各字符出现频率不同,如下表所示。 有多种方式表示文件中的信息,若用0,1码 阅读全文
posted @ 2020-11-12 15:18 Chen洋 阅读(1342) 评论(0) 推荐(0)
摘要: 1.最小延迟调度问题描述 f(i) 表示某任务 开始的时间。 ti 表示 某任务 加工的时间 di 表示 某任务 要求完成的时间 延迟: f(i)+ti-di 如果 实际完成的时间 小于 规定完成时间,那么,就没有 延迟。延迟就是拖延,如果你在规定时间内(<=规定时间),那么,就说明没有延迟,没有拖 阅读全文
posted @ 2020-11-12 14:26 Chen洋 阅读(1402) 评论(0) 推荐(0)
摘要: 概念: 当一个问题具有最优子结构性质时,可用动态规划算法,有时会有更简单有效的算法,那就是贪心算法,贪心算法是通过一系列的选择来得到问题的解,贪心算法并不从整体最优上加以考虑,所做的选择只是在某种意义上的局部最优解。但对范围相当广的许多问题能产生整体最优解。在一些情况下,即使贪心算法不能得到整体最优 阅读全文
posted @ 2020-11-12 12:14 Chen洋 阅读(1753) 评论(0) 推荐(0)
摘要: 1、贪心算法 (1)原理:在对问题求解时,总是做出在当前看来是最好的选择。也就是说,不从整体最优上加以考虑,他所做出的仅是在某种意义上的局部最优解。贪心算法不是对所有问题都能得到整体最优解,但对范围相当广泛的许多问题他能产生整体最优解或者是整体最优解的近似解。 (2)特性:贪心算法采用自顶向下,以迭 阅读全文
posted @ 2020-11-12 11:49 Chen洋 阅读(2187) 评论(0) 推荐(0)
摘要: 摘要: 本章介绍了二叉查找树的概念及操作。主要内容包括二叉查找树的性质,如何在二叉查找树中查找最大值、最小值和给定的值,如何找出某一个元素的前驱和后继,如何在二叉查找树中进行插入和删除操作。在二叉查找树上执行这些基本操作的时间与树的高度成正比,一棵随机构造的二叉查找树的期望高度为O(lgn),从而基 阅读全文
posted @ 2020-11-12 11:15 Chen洋 阅读(3808) 评论(0) 推荐(0)