1、算法分析与设计,习题课,填空题,1.算法的复杂性有 复杂性和 复杂性之分。 2.快速排序算法是基于 的一种排序算法。 3.适用于贪心算法求解的问题一般具有两个特性: 和 ,其中 是运用该算法解决问题的核心。 4.贪心算法和动态规划算法的主要区别在于 。 5.分析0/1背包问题时,可使用贪心法、动态规划法和回溯法,其中需要对数据进行事先排序的是 和 ;不需要排序的是 。 6.算法具有5个特征,分别是 、 、 、 。,选择题,1二分搜索算法是利用( )实现的算法。A.分治策略 B.动态规划法 C.贪心法 D.回溯法 2. 贪心算法的基本要素的是( )。A.重叠子问题 B.构造最优解 C.贪心选择性
2、质 D.定义最优解 3. 为避免无效搜索,在回溯算法中采用哪种函数( )。A.递归函数 B.剪枝函数 C.随机数函数 D.搜索函数,4. 贪心算法与动态规划算法的共同点是( )。A.重叠子问题 B.构造最优解 C.贪心选择性质 D.最优子结构性质 5. 使用分治法求解不需要满足的条件是( )。A.子问题必须是一样的 B.子问题不能够重复C.子问题的解可以合并 D.原问题和子问题使用相同的方法解 6. 下面不能使用贪心法解决的是( )。A.单源最短路径问题 B.N皇后问题 C.最小代价生成树问题 D.背包问题 7. 以深度优先方式系统搜索问题解的算法是( )。A.分枝界限算法 B.概率算法 C.
3、贪心算法 D.回溯算法,多段图,设G=(V,E)是一个有向图,其顶点集V被划成K2个不相交的子集vi,求由s到t的最小成本路径。,求解过程:每个节点处的序偶(p,q), p表示节点到t的成本,q表示后继结点编号。最优路径,矩阵相乘,已知 k=1,2,3,4,5,6, r1=5,r2=10, r3=3, r4=12,r5=5,r6=50,r7=6,求矩阵连乘积A1A2A3A4A5A6的最佳求积顺序。,完全加括号形式,0/1背包问题,假设有7个物品,它们的重量和价值如下表所示,若这些物品均不能被分割,且背包容量M=150,使用回溯法求解该背包问题。请写出状态空间搜索树。,按照单位效益从大到小依次排列:FBGDECA,序号分别记为17.则产生如下状态空间搜索树。其中各个节点处的限界函数值通过如下方式求得:,练习,设有子集和数问题的实例W=(w0, w1, w2, w3, w4,w5,w6) =(5,7,10,12,15,18,20)和M=35。求W中元素之和等于M的所有子集。画出对于这一实例由SumOfSub算法实际生成的那部分状态空间树。,答案,根据该算法的前置条件,需有 ,所以重新排序有 ,对其构建状态空间树如下图,