- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
3 什么是算法? 算法的5个特性是什么? 试根据这些特性解释算法与程序的区别。
解答:
算法:为解决某一特定任务而规定的一个指令序列。
算法的特性:
(1) 有输入。一个算法必须有0个或多个输入。它们是算法开始运算前给予算法的量。这些输入取自于特定的对象的集合。它们可以使用输入语句由外部提供,也可以使用赋值语句在算法内给定。
(2)有输出。一个算法应有一个或多个输出,输出的量是算法计算的结果。
(3)确定性。算法的每一步都应确切地、无歧义地定义。对于每一种情况,需要执行的动作都应严格地、清晰地规定。
(4)有穷性。一个算法无论在什么情况下都应在执行有穷步后结束。
(5)有效性。算法中每一条运算都必须是足够基本的。就是说,它们原则上都能精确地执行,甚至人们仅用笔和纸做有限次运算就能完成。
算法和程序不同,程序可以不满足上述的特性(4)。例如,一个操作系统在用户未使用前一直处于等待的循环中,直到出现新的用户事件为止。这样的系统可以无休止地运行,直到系统停工。
此外,算法是面向功能的,通常用面向过程的方式描述;程序可以用面向对象方式搭建它的框架。
4 指出下列各算法的功能并求出时间复杂度。
1.
int Prime (int n)
{
int i = 2;
int x= (int) sqrt (n);
while (i = x)
{
if(n% i == 0) break;
i++;
}
if(i x)
return 1;
else
return 0;
}
解:
功能:判断一个数是否为素数,若是,返回1;否则,返回0.
时间复杂度:O(n^1/2)(即:根号n)
2.
int fun (int n)
{
int i=1, s=1;
while(s n)
s += ++ i;
return i;
}
解:
功能:求出满足不等式1+2+...+i=n的最小i值。
时间复杂度:O(n^1/2)(即:根号n)
3.
void UseFile(ifstream inp, int c[10])
{
for(int i=0; i10; i++)
c[i] =0;
int x;
while (inp x)
{
i=x%10;
c[i] ++;
}
}
解:
时间复杂度:O(n)
4.
void matable (int n)
{
for(int i=1; i=n; i++)
{
for(int j =i; j =n; j ++)
cout i* j =
setw(2) i* j ;
cout endl;
}
}
解:
功能:打印出n行乘法表,第i行有n-i+1项乘积。 时间复杂度:O(n^2)
5.
void cmatrix(int a[M] [N], int d)
{
for(int i=0; iM; i++)
for(int j =0; jN; j++)
a[i] [j]* =d;
}
功能:使数组a[M][N]中每个元素的值都乘以d的值。
时间复杂度:O(M*N)
6.
void matrimult(int a[M] [N], int b[N] [L], int c[M] [L])
{
int i, j, k;
for(i = 0; i M; i ++ )
for(j =0; j L; j ++)
c[i][j] =0;
for(i = 0; i M; i ++ )
for(j =0; j L; j ++)
for(k= 0; k N; k++ )
c[i][j] +=a[i][k] *b[k][j];
}
功能:矩阵相乘,即a[M][N]*b[N][L] = C[M][L]
时间复杂度: O(M*N*L)
7.
i=1;
while(i=n)
i=i*3;
解释:i是这样变化的:1, 3, 9, 27, ...
如果用i(x)表示第x次循环时i的值,则 i(x) = 3^x , x初始值为0。 循环在 i = n 的时候停止,即 i(x) = 3 ^ x = n;= x= log3(n) 即循环结束时,最多进行了log3(n)次运算。按照大O表示法定义,它的复杂度为 O(log3(n)), 即 O(lgn/lg3)
8.n是描述问题规模的非负整数,给出下面程序段的时间
您可能关注的文档
最近下载
- QB∕T 5775-2022 离子交换树脂再生剂 氯化钠.pdf
- 24秋初中地理七年级上册(配湘教版)第二节 气温和降水 第1课时.pptx VIP
- 生命体征测量ppt(共69张PPT).ppt VIP
- 八年级地理第二章中国的自然环境第二节-气候第一课时..ppt
- 欧姆龙PLC-CP1E的中文手册.pdf VIP
- (正式版)D-L∕T 1870-2018 电力系统网源协调技术规范.docx VIP
- 八年级地理第二章中国的自然环境第二节_气候第一课时.ppt VIP
- 八年级语文上册第—次月考卷 1、3单元(江西专用)(原卷+解释)2025-2026学年 统编版.docx VIP
- 人教版八年级地理_第二章中国的自然环境第二节气候.ppt VIP
- 八年级上册地理第二章第二节中国的气候.pptx VIP
文档评论(0)