第一范文网 - 专业文章范例文档资料分享平台

算法分析与设计实验报告

来源:用户分享 时间:2025/5/15 17:55:02 本文由loading 分享 下载这篇文档手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:xxxxxxx或QQ:xxxxxx 处理(尽可能给您提供完整文档),感谢您的支持与谅解。

算法分析与设计

实验报告

班级: 学号: 姓名:

实验一 算法实现一

一、 实验目的与要求

熟悉C/C++语言的集成开发环境;

通过本实验加深对分治法、贪心算法的理解。

二、 实验内容:

掌握分治法、贪心算法的概念和基本思想,并结合具体的问题学习如何用相应策略进行求解的方法。

三、 实验题

1. 【伪造硬币问题】给你一个装有n个硬币的袋子。n个硬币中有一个是伪造的。你的任务是找出这个伪造的硬币。为了帮助你完成这一任务,将提供一台可用来比较两组硬币重量的仪器,利用这台仪器,可以知道两组硬币的重量是否相同。试用分治法的思想写出解决问题的算法,并计算其时间复杂度。 (1) 源程序: #include #include #include

int findTheCoin(int q[],int a,int b); int quantity(int q[],int a,int b); void main() {

time_t ts;

srand((unsigned) time(&ts)); const int Max=70; int n,k; while(true) {

cout << \请输入硬币的个数\

}

cin >> n; int q[Max]; int i;

for( i=1;i<=n;i++) { }

k=rand()%n; if(k==0)

k=n; q[i]=2;

q[k]=1;

cout<<\随机产生的硬币排列顺序\for(i=1;i<=n;i++) { }

cout<

int p=findTheCoin(q,1,n);

cout<<\伪造硬币的位置:\cout<<\}

cout<

cout<

int quantity(int q[],int a,int b) {

int total=0; int i;

for( i=a;i<=b;i++)

}

total+=q[i];

return total;

int findTheCoin(int q[],int a,int b) {

if(a==b)

return a;

int n=b-a+1; int c=n%3; int m=a+n/3-1; int d; switch(c) { case 0:

if (quantity(q,a,m)==quantity(q,m+1,m+n/3)) { }

else if (quantity(q,a,m)==quantity(q,m+n/3+1,m+2*(n/3))) { } else {

d=findTheCoin(q,a,m); return d;

d=findTheCoin(q,m+1,m+n/3); return d;

d=findTheCoin(q,m+n/3+1,m+2*(n/3)); return d;

} //break;

case 1:

if( (quantity(q,a,m)==quantity(q,m+1,m+n/3)) &&

(quantity(q,m+n/3+1,m+2*(n/3))==quantity(q,m+1,m+n/3)) )

return m+2*(n/3)+1;

else { } //break;

if (quantity(q,a,m)==quantity(q,m+1,m+n/3)) { }

else if (quantity(q,a,m)==quantity(q,m+n/3+1,m+2*(n/3))) { } else { }

d=findTheCoin(q,a,m); return d;

d=findTheCoin(q,m+1,m+n/3); return d;

d=findTheCoin(q,m+n/3+1,m+2*(n/3)); return d;

case 2:

if(q[m+2*(n/3)+1]==q[m+2*(n/3)+2]) {

if (quantity(q,a,m)==quantity(q,m+1,m+n/3)) {

搜索更多关于: 算法分析与设计实验报告 的文档
算法分析与设计实验报告.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.diyifanwen.net/c7ideq2er9d8xzko02xoc4ddq3430jm00y6y_1.html(转载请注明文章来源)
热门推荐
Copyright © 2012-2023 第一范文网 版权所有 免责声明 | 联系我们
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:xxxxxx 邮箱:xxxxxx@qq.com
渝ICP备2023013149号
Top