《算法设计与分析》实验指导及报告书.docx

上传人:b****7 文档编号:9825026 上传时间:2023-02-06 格式:DOCX 页数:8 大小:17.95KB
下载 相关 举报
《算法设计与分析》实验指导及报告书.docx_第1页
第1页 / 共8页
《算法设计与分析》实验指导及报告书.docx_第2页
第2页 / 共8页
《算法设计与分析》实验指导及报告书.docx_第3页
第3页 / 共8页
《算法设计与分析》实验指导及报告书.docx_第4页
第4页 / 共8页
《算法设计与分析》实验指导及报告书.docx_第5页
第5页 / 共8页
点击查看更多>>
下载资源
资源描述

《算法设计与分析》实验指导及报告书.docx

《《算法设计与分析》实验指导及报告书.docx》由会员分享,可在线阅读,更多相关《《算法设计与分析》实验指导及报告书.docx(8页珍藏版)》请在冰豆网上搜索。

《算法设计与分析》实验指导及报告书.docx

《算法设计与分析》实验指导及报告书

常熟理工学院

《算法设计与分析》实验指导与报告书

 

______学年第____学期

 

专业:

___________________________________________

学号:

___________________________________________

姓名:

___________________________________________

实验地点:

___________________________________________

指导教师:

___________________________________________

计算机科学与工程学院

2013

 

实验目录

实验一求最大公约数3

实验二斐波那契数列7

实验三串匹配问题9

实验四堆的创建与堆排序11

实验五霍纳法则13

实验六Warshall算法和Floyed算法15

实验七动态规划方法解背包问题17

实验八解非线性方程的算法19

 

实验一求最大公约数

实验目的与任务

⑴复习数据结构课程的相关知识,实现课程间的平滑过渡;

⑵掌握并应用算法的数学分析和后验分析方法;

⑶理解这样一个观点:

不同的算法能够解决相同的问题,这些算法的解题思路不同,复杂程度不同,解题效率也不同。

预习内容:

第一章绪论1.1算法的概念

实验内容及要求

⑴至少设计出三个版本的求最大公约数算法;

⑵对所设计的算法采用大O符号进行时间复杂性分析;

⑶上机实现算法,并用计数法和计时法分别测算算法的运行时间;

备注:

说明:

为了度量算法的运行时间,可以借助于clock()函数或者time()函数完成

它们的使用方法参见如下实例:

/*clock版本*/

#include

#include

#include

intmain(void)

{

doublet1,t2;

inti,j;

doublek;

t1=clock();

/*在下方添加待测试运行时间的代码;*/

for(i=0;i<10000;i++)

for(j=0;j<10000;j++)

k=0.123*j+3.567*i;

t2=clock();

printf("Ittakes%lf\n",(t2-t1)/CLK_TCK);

/*其中CLK_TCK是时钟周期,是一个常量,

clock()函数计算出来的是硬件滴答的数目,不是毫秒。

在TC2.0中硬件每18.2个滴答是一秒,*/

return0;

}

/*time版本*/

#include

#include

#include

intmain(void)

{

time_tstart,end;

inti,j;

doublek;

start=time(NULL);

/*在下方添加待测试运行时间的代码;*/

for(i=0;i<10000;i++)

for(j=0;j<10000;j++)

k=0.123*j+3.567*i;

end=time(NULL);

printf("Thetimewas:

%f\n",difftime(end,start));

return0;

}

⑷通过分析对比,得出自己的结论。

提示:

下列程序可实现求出n的质因数的个数number.并可求出n的质因数。

for(i=2;i<=n;i++)

{

while(n>=i)

{

if(n%i==0)

{

number++;

n=n/i;

}

elsebreak;

}

}/*计算n有多少个质因数*/

实验结果(可续页)

教师评分

实验二斐波那契数列

实验目的与任务

⑴深入理解斐波那契数列;

(2)理解递归的思想;

预习内容

斐波那契数列;

实验内容及要求

⑴上机实现斐波那契数列的四种算法,并用计时法测算四种算法的运行时间;

⑵对所设计的算法采用大O符号进行时间复杂性分析;

⑶通过对四种算法分析对比,得出自己的结论

实验结果(可续页)

 

教师评分

实验三串匹配问题

实验目的与任务

⑴深刻理解并掌握蛮力法的设计思想;

(2)理解这样一个观点:

用蛮力法设计的算法,一般来说,经过适度的努力后,都可以对算法的第一个版本进行一定程度的改良,改进其时间性能。

(了解空间换时间权衡的思想)

预习内容

BruteForce算法,Horspool算法.(P1977.2串匹配中的输入增强技术)

实验内容及要求

⑴实现BruteForce算法;⑵实现BM算法的简化算法:

Horspool算法;⑶对上个算法进行时间复杂性分析,并设计实验程序验证分析结果。

实验结果(可续页)

教师评分

实验四堆的创建与堆排序

实验目的与任务

1、深刻理解变换(变治法)的思想。

预习内容

堆的定义。

堆创建的算法与堆排序算法。

实验内容及要求

1、代码实现堆的创建。

2、代码实现堆排序算法。

3、分析堆排序算法的时间复杂度并与合并排序,快速排序算法进行比较,最后得出自己的结论。

实验结果(可续页)

教师评分

实验五霍纳法则

实验目的与任务

(1)深刻理解变治法的思想。

预习内容

霍纳法则,二进制幂

实验内容及要求

(1)代码实现霍纳法则算法。

并实现求任给一个多项式除以(x-c)的商和余数。

(2)代码实现计算

的从左至右二进制幂算法。

(3)分析霍纳法则与蛮力计算多项式的算法时间复杂度,并进行比较。

实验结果(可续页)

教师评分

实验六Warshall算法和Floyed算法

实验目的与任务

⑴利用warshall算法计算有向图传递闭包和利用Floyed算法计算全部最短路径。

(2)深刻理解并掌握动态规划法的设计思想;

预习内容

warshall算法与Floyed算法

实验内容及要求

⑴上机实现算法,并用计数法和计时法分别测算算法的运行时间;

⑵对所设计的算法采用大O符号进行时间复杂性分析;

⑶通过对warshall算法与Floyed算法分析对比,找出的他们的相似处。

实验结果(可续页)

教师评分

实验七动态规划方法解背包问题

实验目的与任务

1、深刻理解动态规划法的思想。

预习内容

动态规划的方法求解背包问题。

实验内容及要求

(1)代码实现动态规划算法求背包问题的算法。

(2)根据实现的代码给填写动态规划表,并根据根表回溯求出最优解。

(3)分析此算法的时间复杂度。

实验结果(可续页)

教师评分

实验八解非线性方程的算法

实验目的与任务

理解NP困难问题,了解其中一些问题的近似算法

预习内容

解非线性方程的算法平分法,试位法,牛顿法

实验内容及要求

(1)代码实现平分法求方程近似解的算法

(2)代码实现试位法,牛顿法求方程近似解的算法

(3)分析三种算法的时间复杂度,比较三种算法的优缺点。

实验结果(可续页)

教师评分

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 理学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1