算法分析与设计实验报告

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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");

}

实验结果及分析

心得体会

成绩

评定教师签名:

年月日

相关文档
最新文档