算法设计与分析实验报告.docx
《算法设计与分析实验报告.docx》由会员分享,可在线阅读,更多相关《算法设计与分析实验报告.docx(26页珍藏版)》请在冰豆网上搜索。
![算法设计与分析实验报告.docx](https://file1.bdocx.com/fileroot1/2022-12/18/941afb2d-673d-4020-8f4b-ada3a58b62c2/941afb2d-673d-4020-8f4b-ada3a58b62c21.gif)
算法设计与分析实验报告
《算法设计与分析》实验报告
实验一递归与分治策略应用基础
学号:
**************
姓名:
*************
班级:
*************
日期:
学年第学期
第九周
一、实验目的
、理解递归的概念和分治法的基本思想
、了解适用递归与分治策略的问题类型,并能设计相应的分治策略算法
、掌握递归与分治算法时间空间复杂度分析,以及问题复杂性分析方法
二、实验内容
任务:
以下题目要求应用递归与分治策略设计解决方案,本次实验成绩按百分制计,完成各小题的得分如下,每小题要求算法描述准确且程序运行正确。
、求个元素的全排。
(分)
、解决一个*的特殊棋牌上的型骨牌覆盖问题。
(分)
、设有个运动员要进行网球循环赛。
设计一个满足要求的比赛日程表。
(分)
提交结果:
算法设计分析思路、源代码及其分析说明和测试运行报告。
三、设计分析
四、算法描述及程序
五、测试与分析
六、实验总结与体会
""
;
(*,,)
{
()
{
(;<;)
<<[]<<"";
<<;
;
}
{
(;<;)
{
([],[]);
(,,);
([],[]);
}
}
}
()
{
;
;
;
;
}
()
{
;
[];
<<"请输入排列数据总个数:
";
>>;
<<"请输入数据:
";
(<)
{
>>[];
}
<<"该数据的全排列:
"<<;
();
;
}
《算法设计与分析》实验报告
实验二递归与分治策略应用提高
学号:
**************
姓名:
*************
班级:
*************
日期:
学年第学期
一、实验目的
、深入理解递归的概念和分治法的基本思想
、正确使用递归与分治策略设计相应的问题的算法
、掌握递归与分治算法时间空间复杂度分析,以及问题复杂性分析方法
二、实验内容
任务:
从以下题目中任选一题完成,要求应用递归与分治策略设计解决方案。
、码是一个长度为的序列。
序列中无相同的元素,每个元素都是长度为位的(,)串,相邻元素恰好只有一位不同。
设计一个算法对任意的构造相应的码。
、马的周游路线问题。
对于给定的*的国际象棋棋盘,和均为大于的偶数,且<,计算*的国际象棋棋盘上的一条周游路线。
、对于给定的个自然数组成的多重集,计算的众数及其重数。
提交结果:
算法设计分析思路、源代码及其分析说明和测试运行报告。
三、设计分析
四、算法描述及程序
五、测试与分析
六、实验总结与体会
""
;
()
{
[];
;
;
<<"输入要输入数字的个数:
"<<;
>>;
<<"输入数字:
"<<;
(<)
{
>>[];
}
(<)
{
(<)
{
([][])
;
}
(>)
{
;
;
}
;
}
<<[]<<"\"<<;
}
《算法设计与分析》实验报告
实验三动态规划策略应用基础
学号:
姓名:
班级:
日期:
学年第学期
一、实验目的
、理解动态规划策略的基本思想。
、了解适用动态规划策略的问题类型,并能利用动态规划策略设计相应的算法,解决具体问题。
、掌握动态规划算法时间空间复杂度分析,以及问题复杂性分析方法
二、实验内容
任务:
从以下题目中任选一题完成,要求应用动态规划策略设计解决方案。
、矩阵连乘问题。
、最长公共子序列问题。
、流水作业调度问题。
、最少硬币问题
提交结果:
程序设计的源代码及其分析说明和测试运行报告。
三、设计分析
四、算法描述及程序
五、测试与分析
六、实验总结与体会
<>
;
;
[][][][][];
;
(){
(<)[][];
(<)
(<){
;
[][][][][][][]*[]*[];
[][];
(<){
[][][][][]*[]*[];
(<[][]){
[][];
[][];
}
}
}
}
(){
();
([][]);
([][]);
<<""<<<<","<<[][]<<""<<[][]<<","<<<<;
}
(){
>>;
(<)>>[];
();
();
<<[][]<<;
("");
;
}
《算法设计与分析》实验报告
实验四动态规划策略应用提高
学号:
**************
姓名:
*************
班级:
*************
日期:
学年第学期
一、实验目的
、深入理解动态规划策略的基本思想。
、能正确采用动态规划策略设计相应的算法,解决实际问题。
、掌握动态规划算法时间空间复杂度分析,以及问题复杂性分析方法
二、实验内容
任务:
从以下题目中任选一题完成,要求应用动态规划策略设计解决方案。
、编辑距离问题。
、石子合并问题。
、租用游艇问题。
提交结果:
程序设计的源代码及其分析说明和测试运行报告。
三、设计分析
四、算法描述及程序
五、测试与分析
六、实验总结与体会
<>
<>
;
(,)
{
:
;
}
(,)
{
();
();
***[];
(;<)
{
[][];
}
(<)
{
[][];
}
(<)
{
[][];
}
(<)
{
(<;)
{
;
([][],[][]);
([][])
{
;
}
{
;
}
[][](,[][]);
}
}
<<"**************************"<<;
(<)
{
(;<;)
{
<<[][]<<"";
}
<<;
}
<<"**************************"<<;
[][];
(;<;)
{
[][];
[];
}
[];
;
;
}
()
{
"";
"";
(,);
<<":
"<<<<;
;
}
《算法设计与分析》实验报告
实验五贪心策略应用基础
学号:
姓名:
班级:
日期:
学年第学期
一、实验目的
、深入理解贪心策略的基本思想。
、能正确采用贪心策略设计相应的算法,解决实际问题。
、掌握贪心算法时间空间复杂度分析,以及问题复杂性分析方法
二、实验内容
最小生成树问题。
三、设计分析
此算法需要建立辅助数组,来存放和之间的边,数组按如图所示的方式变化:
棕色虚线表示的边是数组中的边,实线表示的边是要加入到最小生成树中的边,该边即将在数组中被删除。
四、算法描述及程序
五、测试与分析
六、实验总结与体会
<>
<>
[][][][];
;
()
{
;
(());
[];
(<)
()[][][];
(<)
{
;
(<)
([]>[])
{
[];
}
;
[];
(<)
([][]>[][])
[][][];
}
;
}
()
{
;
((""))
{
(());
(<)
(<)
{
("");
[][][][];
}
();
("\");
}
;
}
《算法设计与分析》实验报告
实验六贪心策略应用提高
学号:
姓名:
班级:
日期:
学年第学期
一、实验目的
、深入理解贪心策略的基本思想。
、能正确采用贪心策略设计相应的算法,解决实际问题。
、掌握贪心算法时间空间复杂度分析,以及问题复杂性分析方法
二、实验内容
任务:
从以下题目中任选一题完成,要求应用动态规划策略设计解决方案。
、磁带最优存储问题。
、最优服务次序问题。
、汽车加油问题。
提交结果:
程序设计的源代码及其分析说明和测试运行报告。
三、设计分析
四、算法描述及程序
五、测试与分析
六、实验总结与体会
<>
<>
<>
;
;
(<>)
{
<>();
<>();
();
(()());
;
(<){
[][];
[][];
;
;
();
}
;
(<)
[];
;
;
}
()
{
;
;
;
;
;
<>;
<<"请输入顾客的数量:
";
>>;
<<"请输入服务员的数量:
";
>>;
<<"请输入服务顾客所需时间:
"<<;
(<){
<<"."<<<<;
>>;
();
}
(,);
<<"平均最短服务时间:
"<<<<;
>>;
}
《算法设计与分析》实验报告
实验七回溯策略应用基础
学号:
姓名:
班级:
日期:
学年第学期
一、实验目的
、深入理解回溯策略的基本思想。
、能正确采用回溯策略设计相应的算法,解决实际问题。
、掌握回溯算法时间空间复杂度分析,以及问题复杂性分析方法
二、实验内容
任务:
从以下题目中任选一题完成,要求应用回溯策略设计解决方案。
.连续邮资问题。
后问题。
背包问题。
三、设计分析
四、算法描述及程序
五、测试与分析
六、实验总结与体会
<>
;
{
([]);
:
();
();
邮票面值数
每张信封最多允许贴的邮票数
当前最优值
大整数
邮资上界
*当前解
*贴出各种邮资所需最少邮票数
*当前最优解
};
()
{
(<[]*())
([]<)
(<[])
([]<[[]*])
[[]*][];
([]<)
;
(>){
(>){
;
(<)
[][];
}
;
}
*[];
(<)
[][];
([]<){
[];
();
(<)
[][];
}
[];
}
([]){
;
;
;
;
;
;
;
;
;
[];
[];
(<)
[];
(<)
[];
[];
[];
();
<<"当前最优解:
";
(<)
<<[]<<"";
<<;
[];
[];
;
}
(){
*;
;
;
<<"请输入邮票面值数:
";
>>;
<<"请输入每张信封最多允许贴的邮票数:
";
>>;
[];
(<)
[];
<<"最大邮资:
"<<()<<;
}
《算法设计与分析》实验报告
实验八回溯策略应用提高
学号:
姓名:
班级:
日期:
学年第学期
一、实验目的
、深入理解回溯策略的基本思想。
、能正确采用回溯策略设计相应的算法,解决实际问题。
、掌握回溯算法时间空间复杂度分析,以及问题复杂性分析方法
二、实验内容
任务:
从以下题目中任选一题完成,要求应用回溯策略设计解决方案。
、最小重量机器设计问题。
(课后习题)
、运动员最佳配对问题。
(课后习题)
提交结果:
程序设计的源代码及其分析说明和测试运行报告。
三、设计分析
四、算法描述及程序
五、测试与分析
六、实验总结与体会
<>
;
{
;部件个数
;供应商个数
;题目中的
;当前的重量
;当前花费
;当前最小重量
[];
[];
[][];
[][];
:
();
();
();
};
()
{
;当前的重量
;当前花费
;当前最小重量
[];
[];
<<"请输入部件个数:
";
>>;
<<"请输入供应商个数:
";
>>;
<<"请输入总价格不超过:
";
>>;
(<)
{
(<)
{
<<"请输入第"<<<<"个供应商的第"<<<<"个部件的重量:
";
>>[][];
<<"请输入第"<<<<"个供应商的第"<<<<"个部件的价格:
";
>>[][];
([][]<[][]<)
{
<<"重量或价钱不能为负数!
\";
;
}
}
}
}
()
{
(>)
{
(<)
{
;
(<;)把当前搜过的路径记下来
[][];
}
;
}
(;<;)依次递归尝试每个供应商
{
([][]<)
{
[][];
[][];
[];
();
[];
[][];
[][];
}
}
}
()
{
;
(<)
{
(<)
{
<<"第"<<<<"供应商的第"<<<<"部件重量:
"<<[][]<<" 价格:
"<<[][]<<"\";
}
}
(;<;)
{
[];
}
();
<<"\最小重量机器的重量是:
"<<<<;
(;<;)
{
<<"第"<<<<"部件来自供应商"<<[]<<"\";
[][[]];
}
<<"\该机器的总价钱是:
"<<<<;
<<;
}
()
{
;
();
;
}