随笔分类 -  算法设计与分析作业

摘要:一、实践题目 7-2 工作分配问题 题目描述:现在要将n份工作分配给n个人,其中每个人完成不同工作需要不同的花费,现在输入一个n表示n个人和n份工作,接着输入n行,每行n个数表示该人完成第i个工作所需要的花费。现在需要你求出为每一个人分配一件不同的工作,并使花费的最小值。 样例1: 题目分析: 该题 阅读全文
posted @ 2018-12-17 20:52 _Carrot 阅读(167) 评论(0) 推荐(0)
摘要:贪心算法 基本思想: 贪心算法通过一系列的选择来得到问题的解,其中每一个选择都是当前状态下局部最好的选择,即贪心选择 它有两个重要性质:贪心选择性质和最优子结构性质。 贪心选择性质:指问题的最优解可以通过一系列局部最优解的选择得到。贪心算法做贪心选择可 以依赖于以往所做过的选择,但决不依赖于将来所作 阅读全文
posted @ 2018-11-28 12:05 _Carrot 阅读(690) 评论(0) 推荐(0)
摘要:一、实践题目 7-1 最优合并问题 题目描述:存在k个排好的序列,要用二路合并算法将其合并成一个序列。将长度 为m和长度为n的序列合并需要比较m+n-1次,现在要求进行合并操作时,所需要的 总比较次数最多和最少的次数。输入k,接下来的k个数为k个序列的长度 样例1: 题目分析: 容易分析得出,如果每 阅读全文
posted @ 2018-11-28 10:35 _Carrot 阅读(192) 评论(0) 推荐(0)
摘要:一、实践题目 7-3 编辑距离问题 题目描述:用最少的操作将字符串A转化成字符串B,其中操作包括三种。 (1)删除一个字符; (2)插入一个字符; (3)将一个字符改为另一个字符。 样例1: 题目分析: 此题用动态规划的做法,首先需要定义F(i,j),表示长度为i的字符串A 转化为长度为j的字符串B 阅读全文
posted @ 2018-11-10 16:52 _Carrot 阅读(167) 评论(0) 推荐(0)
摘要:动态规划 基本思想 动态规划算法与分治法类似,其基本思想也是将待求解问题分解乘若干个子问题,先求子问题, 然后从这些子问题的解得到原问题的解。动态规划中分解得到的子问题往往不是相互独立的。 若用分治法,则分解的子问题数目会太多,导致时间复杂度过高。在动态规划中我们将已解决 子问题的答案保存在一个表, 阅读全文
posted @ 2018-11-07 19:30 _Carrot 阅读(252) 评论(3) 推荐(0)
摘要:一、实践题目 题目描述:存在两个长度为n得有序序列S1、S2,求出S1、S2合并后得有序序列的中位数,要求算法实间复杂度O(logn) 样例1: 样例2: 题目分析: 本题很容易能够想到几种较简单的做法,但是复杂度都不太符合要求,首先最容易想到的时可以将两个数组合并在一 个数组中然后进行排序最快的排 阅读全文
posted @ 2018-10-20 14:15 _Carrot 阅读(185) 评论(0) 推荐(0)
摘要:二分法: 二分思想是解决编程问题的一个重要思想,通过分半不断缩小判定区间,来降低问题规模,最后达到降低问题复杂度的目的。 采用二分法的条件是: 1、符合单调性 2、中间值mid可判定 二分搜索 典型的二分法例子是二分搜索算法,算法将n个有序元素分成大致相同的两半,通过对中间值的判定,确定所求目标数所 阅读全文
posted @ 2018-10-15 20:44 _Carrot 阅读(363) 评论(0) 推荐(0)