算法分析与设计实验报告
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实
验
结
果
及
分
析
实验名称算法分析基础——Fibonacci序列问
题
实验室
实验目的或要求
实验题目
给定一个非负整数n,计算第n个Fibonacci数
实验目的
1)理解递归算法和迭代算法的设计思想以及递归程序的调式技术
2)掌握并应用递归算法和迭代算法效率的理论分析(前验分析)和实际分析(后验分析)方法;
3)理解这样一个观点:不同的算法可以解决相同的问题,这些算法的解题思路不同,复杂程度不同,效率也不同;
实验要求
程序代码int Fib1(int n)
{
int s[48],i;
s[0]=0;
s[1]=1;
for(i=2;i<=n;i++)
s[i]=s[i-1]+s[i-2],time1++; return s[n];
}
int Fib2(int n)
{
long int f;
if(n>1)
{
f=Fib2(n-1)+Fib2(n-2),time2++; return f;
}
if(n<2)
{ time3++;
return n;}
time3=time3+time2;
}
实验结果及分析
实验名称分治法在数值问题中的应用——最近
实验室
点对问题
实验结果及分析
for(e=i;e<i+a;e++)
l[e]=s[e];
return jiabi(l,a,f);
}
if(x>y)
{
for(e=a+i;e<i+n-1;e++)
l[e]=s[e];
return jiabi(l,a,f+a);
}
if(x==y)
printf("第%d个是假币",k);
}
}
if(n==2)
{
if(s[i]>s[i+n-1])
printf("第%d个是假币",i+1);
if(s[i]<s[i+n-1])
printf("第%d个是假币",n+i);
}
if(n==1)
printf("第%d个是假币",i+1);
}
实
验
结
果
及
分
析
程序代码void dui_sort(int c[],int m)
{ printf("排序前顺序:");
for(int g=1;g<m+1;g++)
{
printf("%d,",c[g]);
}
printf("\n");
int e=0;
for(int s=m;m>0;m--)
{ e++;
dui(c,m);
printf("第%d次建堆后的顺序:",e);
for(int h=1;h<s+1;h++)
{
printf("%d,",c[h]);
}
printf("\n");
jiao_huan2(c[1],c[m]);
printf("求的当前最大值为%d:\n",c[m]);
}
printf("排好序后的数组顺序为:");
for(int h=1;h<s+1;h++)
{
printf("%d,",c[h]);
}
printf("\n");
}
实验结果及分析
心得体会
成绩
评定教师签名:
年月日