摘要: 1. 实践题目 :7-2 工作分配问题 2. 问题描述: 设有n件工作分配给n个人。将工作i分配给第j个人所需的费用为cij 。 设计一个算法,对于给定的工作费用,为每一个人都分配1 件不同的工作,并使总费用达到最小。 输入格式: 输入数据的第一行有1 个正整数n (1≤n≤20)。接下来的n行,每 阅读全文
posted @ 2018-12-23 14:49 winkeybobo 阅读(110) 评论(0) 推荐(0) 编辑
摘要: 1. 对回溯算法的理解: 回溯法是一种以深度优先方式系统搜索问题解的算法。首先针对问题构造一棵解空间树,按深度优先策略,从根节点出发搜索解空间树。算法搜索至解空间树的任一结点时,先判断该结点是否包含问题的解。如果肯定不包含,则跳过对该结点为根的子树的搜索,逐层向其祖先结点回溯。否则,进入该子树,继续 阅读全文
posted @ 2018-12-23 14:18 winkeybobo 阅读(120) 评论(0) 推荐(0) 编辑
摘要: 一、对贪心算法的理解 贪心算法求解问题是通过做出当前状态下最好的选择,即局部最优选择,旨在通过求局部最优来获得全局最优解。 但使用贪心算法求解问题时要注意考虑原问题整体最优解是否能通过选择局部最优得到。 二、汽车加油问题的贪心选择性质 汽车每一次加满油后,走到自己能够到达且距离最远的加油站,加满油后 阅读全文
posted @ 2018-11-28 19:15 winkeybobo 阅读(97) 评论(0) 推荐(0) 编辑
摘要: 1 实践题目: 数字三角形 2 问题描述: 给出n行数字组成的三角形,设计一个算法,使三角形从顶向底的路径和最大(每次可沿左斜线向下或者右斜线向下)。输入n+1行,第一行是数字三角形的行数,接下来n行是三角形各行的数字。输出最大路径的值。 输入: 输出:30 3 算法描述:从第n-1行开始,每一个数 阅读全文
posted @ 2018-11-16 13:12 winkeybobo 阅读(129) 评论(0) 推荐(0) 编辑
摘要: 1.对动态规划算法的理解 基本思想: 动态规划算法是将待求解的问题分解成若干个子问题,先求子问题,然后从这些子问题的解得到原问题的解。但与分治法不同,适合于用动态规划法求解的问题,经分解得到的子问题往往不是互相独立的。为了避免有些子问题被重复计算了很多次,可以用一个表来记录所有已解决的子问题的答案, 阅读全文
posted @ 2018-11-01 21:16 winkeybobo 阅读(360) 评论(0) 推荐(0) 编辑
摘要: 1.实践题目:7-1二分查找 2.问题描述: 输入n值(1<=n<=1000)、n个非降序排列的整数以及要查找的数x,使用二分查找算法查找x,输出x所在的下标(0~n-1)及比较次数。若x不存在,输出-1和比较次数。 3.算法描述: 定义left和right分别表示a数组第一和最后一个数,用mid代 阅读全文
posted @ 2018-10-15 16:49 winkeybobo 阅读(189) 评论(0) 推荐(0) 编辑
摘要: 二分法思想体会: 因为之前学c++也学习过二分法,比较容易理解,这应该是个基础又重要的算法。 用二分法查找可以大大降低时间复杂度,比如用顺序查找复杂度为O(n),而用二分法查找则为O(logn),提高了解决问题的效率,在处理更大的数据时优点会更加突出。 结队编程: 结队可以很好的相互沟通交流,遇到难 阅读全文
posted @ 2018-10-15 16:12 winkeybobo 阅读(129) 评论(0) 推荐(0) 编辑