摘要: 算法第五章 | 回溯算法 一、 回溯算法 回溯法有“通用的解题法”之称。可以系统地搜索一个问题的所有解或任一解,是一个既带有系统性又带有跳跃性的搜索算法。 它在问题的解空间树中,按深度优先策略,从根节点出发搜索解空间树。算法搜索至解空间树的任一结点时,先判断该结点是否包含问题的解。如果肯定不包含,则 阅读全文
posted @ 2018-12-23 14:56 Wayne- 阅读(695) 评论(0) 推荐(0) 编辑
摘要: 第五章 | 上机实践报告 一、 实践题目:工作分配问题 二、 问题描述 设有n件工作分配给n个人。将工作i分配给第j个人所需的费用为Cij。对于给定的所有工作费用,为每一个人都分配1件不同的工作,使总费用达到最小。 三、 算法描述 1.解题思路:以第一份工作为结点构造子集树,在Backtrack函数 阅读全文
posted @ 2018-12-23 14:56 Wayne- 阅读(135) 评论(0) 推荐(0) 编辑
摘要: 算法第四章实践报告 一、实践题目:7-2 删数问题 二、问题描述 给定n位正整数,去掉其中任意k <= n个数字后,剩下的数字按原次序排列组成一个新的正整数。对于给定的n位正整数k,设计一个算法找出剩下数字组成的新数最小的删数方案。 三、算法描述 1.解法一:参考链接如下 https://blog. 阅读全文
posted @ 2018-12-01 22:08 Wayne- 阅读(172) 评论(0) 推荐(0) 编辑
摘要: 算法第四章作业 一、贪心算法 贪心算法通过一系列的选择来得到问题的的解。它所做的每一个选择都是当前状态下局部最好选择,即贪心选择。 贪心算法一般具有两个重要的性质。 1.贪心选择性质:贪心选择性质是指所求问题的整体最优解可以通过一系列局部最优的选择,即贪心选择。 在动态规划算法中,每步所做的选择往往 阅读全文
posted @ 2018-12-01 22:08 Wayne- 阅读(851) 评论(0) 推荐(0) 编辑
摘要: 算法第3章上机实践报告 一、 实践题目:7-2 最大字段和 二、 问题描述: 给定n个整数(可能为负数)组成的序列a[1], a[2], a[3]...,a[n],求该序列和如a[i] + a[i + 1] + .... + a[j]的子段和的最大值。当所给的整数均为负数时,定义子段和为0。 要求算 阅读全文
posted @ 2018-11-11 20:38 Wayne- 阅读(161) 评论(0) 推荐(0) 编辑
摘要: 算法第三章作业 一、 动态规划算法 1.介绍: 动态规划算法与分治法类似,其基本思想也是将待求问题分解成若干个子问题,先求解子问题,然后从这些子问题的解得到原问题的解。 与分治法不同的是,适合与动态规划法求解的问题,经分解得到的子问题往往不是互相独立。若用分治法解决这类问题,则分解得到的子问题数目太 阅读全文
posted @ 2018-11-04 21:48 Wayne- 阅读(376) 评论(0) 推荐(0) 编辑
摘要: 1、 实践题目:7-3 两个有序序列的中位数(二分法解法) 2、 问题描述:对于两个等长的非降序序列S1、S2,如何利用二分法的思想求出S1与S2并集的中位数,要求算法的时间复杂度为T(logn)。 3、 算法描述:总体思想:采用分治与递归策略,二分法每次将问题规模减半(约减半),然后对问题进行递归 阅读全文
posted @ 2018-10-21 23:24 Wayne- 阅读(188) 评论(0) 推荐(0) 编辑
摘要: 对二分法的学习体会以及关于结对编程的体验分享 1) 二分搜索技术 a) 顺序搜索方法:逐个比较a[0: n-1]中元素,直至找出元素或搜索整个数组后确定x不在其中。该方法没有很好地利用n个元素已排好序这个条件,因此在最坏的情况下,顺序搜索方法需要O(n) 次比较。 b) 二分搜索方法:将n个元素分成 阅读全文
posted @ 2018-10-21 23:15 Wayne- 阅读(295) 评论(0) 推荐(0) 编辑