本文主要通过求解最长公共子序列介绍动态规划算法的思想,首先介绍动态规划法的概念,动态规划法解题的步骤,然后介绍什么是最长公共子序列,按照动态规划法的步骤计算两个序列的最长公共子序列。 最后通过举例求解两个序列的最长公共子序列并且分析算法的时间复杂性。通过算法的时间复杂性分析,提出算的改进方案。
2021-12-31 16:12:20 984KB 文档
1
常用算法设计方法详细解析(含源代码) 算法是问题求解过程的精确描述,一个算法由有限条可完全机械地执行的、有确定结果的指令组成。指令正确地描述了要完成的任务和它们被执行的顺序。计算机按算法指令所描述的顺序执行算法的指令能在有限的步骤内终止,或终止于给出问题的解,或终止于指出问题对此输入数据无解。 通常求解一个问题可能会有多种算法可供选择,选择的主要标准是算法的正确性和可靠性,简单性和易理解性。其次是算法所需要的存储空间少和执行更快等。 算法设计是一件非常困难的工作,经常采用的算法设计技术主要有迭代法、穷举搜索法、递推法、贪婪法、回溯法、分治法、动态规划法等等。另外,为了更简洁的形式设计和藐视算法
1
回溯法和动态规划法解01背包问题,控制台应用程序,代码没有编译完成,请自行编译
2021-12-15 15:45:22 2KB 回溯法 动态规划法 01背包问题
1
把长度为l1,l2…ln 的n个程序放在磁带T1和T2上,并且希望按照使用最大检索时间取得最小值的方式存储,即如果存放在T1和T2上的程序集合分别为A和B,则希望所选择的A和B使得max{∑li 1,∑li2}(i1属于A,i2属于B)取得最小。 使用动态规划算法实现。
2021-12-13 10:51:06 1.05MB 算法设计 动态规划法
1
【问题描述】使用分治递归算法解最大子段和问题,具体来说就是,将序列分为长度相等的左右两段,分别求出这两段的最大子段和,包含左右部分子段的最大子段和,求这三种情况得到的最大子段和的最大值。 【输入形式】在屏幕上输入一个序列元素,包含负整数、0和正整数。 【输出形式】序列的最大子段和,及得到最大子段和时的起始和终止编号。 【样例1输入】 -2 11 -4 13 -5 -2 【样例1输出】 20 2 4 【样例说明】 输入:6个数,元素间以空格分隔。 输出:序列的最大子段和20,得到最大子段和时的起始编号为2,终止编号为4。
2021-12-10 12:28:04 445B python
1
一篇关于动态规划的背包问题.主要讲解了如何利用动态规划思想来解决问题.
2021-12-07 18:52:22 134KB 动态规划 背包问题
1
分别用三重循环,分治法和动态规划算法来解决最大子段和问题,并比较三个算法效率的差异。内含c++源代码和实验报告说明
2021-12-03 20:59:27 73KB C++ 最大子段和 动态规划法 分治法
1
分别用蛮力法、分治法、动态规划法设计的最大子段和问题的算法。用VC++ 6.0运行。
1
课程的随堂作业,C语言的,用dev就能运行,萌新代码,勿喷,仅仅帮助不想写作业的朋友方便一下,反正老师也不会仔细检查的
2021-11-27 18:47:38 658B C语言
1
算法分析与设计实验报告
2021-11-12 14:08:52 61KB 算法 实验报告