![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
算法设计与分析
Dong2h
这个作者很懒,什么都没留下…
展开
-
算法设计与分析——贪心算法(二)
3.4 设有n个正整数,将它们连接成一排,组成一个最大的多位整数。 例如:n=3时,3个整数13,312,343,连成的最大整数为34331213。 又如:n=4时,4个整数7,13,4,246,连成的最大整数为7424613。 输入是n个正整数,输出是这n个正整数连成的最大多位整数,要求用贪心法求解该问题。答案要求包含以下内容:(1)证明问题具有贪心选择性;(2)证明问题具有优化子结构;(3)写出算法伪代码并分析算法的时间复杂度。 首先考虑每次选择最高位最大的数,如果相等则比较次高位,在室友的提醒下,发现原创 2020-07-23 12:18:11 · 745 阅读 · 0 评论 -
算法设计与分析——贪心算法(一)
(省略优化子结构及贪心选择性的证明) 3.1 设x1, x2, …., xn是实数轴上的n个点,尝试用单位长度的闭区间覆盖这些点,设计贪心算法求解需要多少单位长度闭区间? sort(x)//将各点按照横坐标从小到大排序 length = getLength(x) sum = 0 maxX = x[0] - 1 for i = 0 to length - 1 if maxX < x[i] maxX = x[i] + 1 sum++ return sum 3.2转载 2020-07-21 10:45:56 · 507 阅读 · 0 评论 -
算法设计与分析——动态规划(三)
3.1 设计动态规划算法输出数组A[0:n]中的最长单调递增子序列。 Ai=min{aj|dp[j]==i} dp[i]=max{j|Aj<ai}+1 3.2 给定n种物品和一背包,物品i的重量是wi,其价值是vi, 背包的容量是c, 设计一个完全多项式时间近似算法,求装入背包的物品集合,使得装入背包中物品的总价值最大。要求设计出算法并对其近似比进行分析,说明为何此算法是完全多项式时间近似模式的算法。 3.4 正整数n 可以拆分成若干个正整数之和,考虑拆分方案的个数。 (1) 令g(i,j)表示拆分原创 2020-07-20 20:28:31 · 345 阅读 · 0 评论 -
算法设计与分析——动态规划(二)
只是答案的搬运工~ 3.1 给定一个浮点数序列(可能有正数、0和负数),设计一个动态规划算法,求出一个最大的连续子序列中浮点数乘积。 (1)简明的写出问题的递推方程; (2)描述算法伪代码; (3)分析算法的时间复杂度。 dp1[i]:以第i个数结尾的连续子序列最大乘积 dp2[i]:以第i个数结尾的连续子序列最小乘积 转移方程: dp1[i]=max(data[i],dp1[i-1]*data[i],dp2[i-1]*data[i]); dp2[i]=min(data[i],dp1[i-1]*data[i原创 2020-07-20 16:58:42 · 462 阅读 · 0 评论