当前位置:首页 » 数据结构精品文章 » 正文

什么是算法? 算法的5个基本特性是什么? 算法设计的要求?

1048 人参与  2018年08月18日 09:04  分类 : 数据结构精品文章  评论

算法的定义

通常,定义算法为"为解决某一特定任务而规定的一个指令序列"

算法的5个基本特性

① 有输入。一个算法必须有0个或多个输入。它们是算法开始运算前给予算法的量。这些输入取自于特定的对象的集合。它们可以使用输入语句由外部提供,也可以使用赋值语句在算法内给定。

② 有输出。一个算法应有一个或多个输出,输出的量是算法计算的结果。

③ 确定性。算法的每一步都应确切地、无歧义地定义。对于每一种情况,需要执行的动作都应严格地、清晰地规定。

例1:

void fa( )
{ 
	int x=5,y=10; 
	z=x+++y;//解释为:x+(++y)?(x++)+y?
	printf("%d,%d,%d",x,y,z);
}
void fb( )
{ 
	int x=5,y=10;
	z=x+(++y); //x+++y解释为:x+(++y)
	printf("%d,%d,%d",x,y,z);
}
void fc( )
{
	int x=5,y=10;
	z=(x++)+y;	//x+++y解释为:(x++)+y
	printf("%d,%d,%d",x,y,z);
}

 有穷性。一个算法无论在什么情况下都应在执行有穷步后结束。

例2:

void fa(  )
{
      int i=0,s=0;
      while(i<10) //死循环
          s++;        //不满足有穷性
      i++;
      printf(“s=%d,i=%d\n“,s,i);
}
void fb(  )
{
      int i=0,s=0;
      while(i<10) //i<10执行多少次
      {
          s++;  //s++执行?次
          i++; // i++ 执行?次
      }
      printf(“s=%d,i=%d\n“,s,i); 
}

 有效性。算法中每一条运算都必须是足够基本的。就是说,它们原则上都能精确地执行,甚至人们仅用笔和纸做有限次运算就能完成。

例3:

求和:S=1+2+3+...+∽   //不可以实现。

算法设计的要求

1)正确性

       a.无语法错误;

       b.对n组输入产生正确结果;

       c.对特殊输入产生正确结果;

       d.对所有输入产生正确结果。

2)可读性:算法主要是为了人的阅读与交流

3)健壮性

4)高效与低存储量


来源:我是码农,转载请保留出处和链接!

本文链接:http://www.54manong.com/?id=16

数据结构  

微信号:qq444848023    QQ号:444848023

加入【我是码农】QQ群:864689844(加群验证:我是码农)

<< 上一篇 下一篇 >>

网站分类

标签列表

最近发表

全站首页 | 数据结构 | 区块链| 大数据 | 机器学习 | 物联网和云计算 | 面试笔试

本站资源大部分来自互联网,版权归原作者所有!