摘要: 一、实践题目:工作分配问题 二、问题描述: 设有n件工作分配给n个人。将工作i分配给第j个人所需的费用为cij 。 设计一个算法,对于给定的工作费用,为每一个人都分配1 件不同的工作,并使总费用达到最小。 三、算法描述: (1)解题思路:以第一份工作为结点构造子集树,在Backtrack函数中进行深 阅读全文
posted @ 2018-12-23 19:54 cc-wanna 阅读(178) 评论(0) 推荐(0) 编辑
摘要: 一、回溯算法 回溯法是一种以深度优先方式系统搜索问题解的算法。首先针对问题构造一棵解空间树,按深度优先策略,从根节点出发搜索解空间树。算法搜索至解空间树的任一结点时,先判断该结点是否包含问题的解。如果肯定不包含,则跳过对该结点为根的子树的搜索,逐层向其祖先结点回溯。否则,进入该子树,继续按深度优先策 阅读全文
posted @ 2018-12-23 19:45 cc-wanna 阅读(131) 评论(0) 推荐(0) 编辑
摘要: 1、实践题目: 7-1 最优合并问题 2、问题描述: 给定n 个排好序的序列, 用 2 路合并算法将这k 个序列合并成一个序列。 假设所采用的 2 路合并算法合并 2 个长度分别为q和p的序列需要q+p-1 次比较。试设 计一个算法确定合并这个序列的最优合并顺序,使所需的总比较次数最少。 为了进行比 阅读全文
posted @ 2018-12-02 00:50 cc-wanna 阅读(115) 评论(0) 推荐(0) 编辑
摘要: 一、贪心算法 1)概念:顾名思义,贪心算法总是做出在当前看来是最好的选择,也就是说贪心算法并不从整体最优上加以考虑,它所做出的选择只是在某种意义上的局部最优选择。 2)优点:相对于动态规划算法,贪心算法更加简单,更加直接且解题效率更高。 3)缺点:贪心算法适用范围小,不是对所有问题都能得到整体最优解 阅读全文
posted @ 2018-12-02 00:17 cc-wanna 阅读(179) 评论(0) 推荐(0) 编辑
摘要: 一、活动安排问题 二、电视节目问题 阅读全文
posted @ 2018-11-21 02:09 cc-wanna 阅读(289) 评论(0) 推荐(0) 编辑
摘要: 一、实践题目:7-2 最大子段和 二、问题描述: 给定n个整数(可能为负数)组成的序列a[1],a[2],a[3],…,a[n],求该序列如a[i]+a[i+1]+…+a[j]的子段和的最大值。当所给的整数均为负数时,定义子段和为0。 要求算法的时间复杂度为O(n)。 三、算法描述: 比较第i个数的 阅读全文
posted @ 2018-11-12 20:55 cc-wanna 阅读(142) 评论(0) 推荐(0) 编辑
摘要: 一、对动态规划的理解 1.基本思想:将待求解问题分成若干个子问题,先求解子问题,然后从这些子问题的解得到原问题的解。但与分治法不同的是,适用于用动态规划法求解的问题,经分解得到的子问题往往不是互相独立的。所以不管该子问题以后是否被用到,只要他被计算过,就将其结果填入表中。 2.适用问题:解最优化问题 阅读全文
posted @ 2018-11-12 20:16 cc-wanna 阅读(106) 评论(0) 推荐(0) 编辑
摘要: 1.实验题目:7-3 两个有序序列的中位数 2.问题描述:已知有两个等长的非降序序列S1, S2, 求S1与S2合并后的中位数。(要求:使用时间复杂度T(n) =O(log n)的算法。) 3.算法描述:(1)比较两个等长的非降序序列的中间量的大小,然后取大数的左段,小数的右段,如果相等则可直接返回 阅读全文
posted @ 2018-10-21 01:38 cc-wanna 阅读(128) 评论(0) 推荐(0) 编辑
摘要: 一、对二分法思想的理解 1.特点:又称为折半算法,是分治策略的一个典型例子。主要是用于:在已排好序的n个元素组成的数组a[0:n-1]中,找出一个特定的元素x。 2.基本思想:(1)将n个元素分成个数大致相同相同的两半,然后取a[n/2]与x作比较。 (2)如果x = a[n/2],则已找到x,返回 阅读全文
posted @ 2018-10-18 23:35 cc-wanna 阅读(223) 评论(0) 推荐(0) 编辑