- 1、本文档共10页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
2011级《算法设计与分析》.doc
《算法设计与分析》
课程考试报告
姓 名:
学 号:
班 别:
任课教师: 黄 海 滨
2013年 06 月 25 日
《算法设计与分析》课程考试要求
本课程考。
数值问题:设x=2,n=30,a0= n,a1= n-1,a3= n-2,…,an-2=2,an-1=1,要求用蛮力算法求解多项式p(x)= a0x0+a1x1+…+an-2 xn-2+an-1 xn-1的值。
算法基本思想;(2分)
蛮力算法根据问题的定义,按照问题的步骤,直截了当地对问题进行求解,借助计算机的运算能力,简单、自然,然而往往又非常有效。
(2)算法描述(可以用流程图、自然语言或伪代码来描述);(3分)
首先定义所要求的数据变量,然后运用一个循环语句对一遍一遍地对语句进行搜索计算,直到最后得出最终结果。
(3)算法实现的C源程序代码;(6分)
#include stdio.h
#include math.h
void main(){
int sum=0;
int a,c,x,i;
int b=0;
a=30;
x=2;
c=0;
for(i=0;i30;i++){
b=a*pow(x,c);
sum=sum+b;
a=a-1;
c=c+1;
}
printf(sum=%d\n,sum);
}(4)程序运行结果的屏幕截图;(6分)
算法分析(可以从算法复杂度、优缺点或改进方法等角度来分析)。(6分)
蛮力算法的应用有通用性|、启发性、实用性、准绳性的优点,但是缺点也很明显就是蛮力算法的效率不是很高。
2.分治算法(25分)
查找问题:输入100个整数,使用分治算法实现折半查找,统计某个整数出现的次数。
(1)算法基本思想;(2分)
这是一种将复杂难解的问题分割为规模和结构相同或相似的子问题,通过对简单问题的求解而达到对原问题的求解的目的的算法设计方法。分治算法能够使原本纷繁复杂的问题变得清晰明朗,而且能够通过将问题的规模变小而降低问题求解的难度。
(2)算法描述(可以用流程图、自然语言或伪代码来描述);(3分)
BINARY-SEARCH(A,T)
L--0
R---n-1
While l=r
Do m--(l+r)/2
If T=A[m]
Then return m
Else if A[m]
Then r--m-1
Else l--m+1
Return-1
(3)算法实现的C源程序代码;(6分)
#includestdio.h
void main()
{
int low=0,high=99,x,a[100],i,k;
int Search(int low,int high,int x,int a[100]);//变量赋值初始化
printf(输入一百个数:\n);
for(i = 0; i 100; i++)
scanf(%d,a[i]);
printf(输入要查找的数:\n);
scanf(%d,x);
k=Search(low,high,x,a);
printf(%d\n,k);
}
int Search(int low,int high,int x,int a[100])
{
int mid;
int k=0,j;
while(low=high)
{
mid=(low+high)/2;
if(a[mid]==x)
{
k++;
for(j = 0; j mid; j++)
{
if(a[j] == x)
k++;
else
continue;
}
for(j = mid+1 ; j = high; j++)
{
if(a[j] == x)
k++;
else
continue;
}
return k;
}
else if(xa[mid])//顺序查找中,左边的数小于被分开的最右边界,则所找的数//在数组的左半部分,要缩小左部的范围
high=mid-1;
else
low=mid+1;
}
return k;
}
(4)程序运行结果的屏幕截图;(6分)
(5)算法分析(可以从算法复杂度、优缺点或改进方法等角度来分析)。(6分)
分治算法将问题分解为了一些更小更容易解决的
您可能关注的文档
- 微分方程12-2.doc
- 3.3利用导数研究函数的极值和最值(理).doc
- 十年高考试题.doc
- 中值定理证明方法总结.pdf
- 第13章:球函数及其应用.pdf
- 2010高考数学一轮—30数列求和及数列实际问题.doc
- 统计复习打印.doc
- 2.安全管理台账--总目录.doc
- 第一章 数学竞赛概述.doc
- 将数学建模思想融入概率论与数理统计课程教学.doc
- 中成药的合理应用.pptx
- PICC导管相关性血栓形成及处理.pptx
- 夏秋猪病多高烧辨证施治错不了.ppt
- 某地产公司项目沟通报告.ppt
- 员工关系管理与劳动法规操作实务(正式).pptx
- 2025年中级注册安全工程师之安全生产法及相关法律知识考试题库及答案(必刷).docx
- 2025年云南省西双版纳傣族自治州选调生考试(行政职业能力测验)综合能力测试题完整.docx
- 2025年注册消防工程师之消防安全技术实务考试卷精选答案.docx
- 2025年云南省保山地区行政职业能力测验模拟试题审定版.docx
- 2025年云南省香格里拉市事业单位考试职业能力倾向测验(中小学教师类D类)强化训练题库汇编.docx
文档评论(0)