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

算法的定义

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

算法的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

'); (window.slotbydup = window.slotbydup || []).push({ id: "u3646208", container: s }); })();
'); (window.slotbydup = window.slotbydup || []).push({ id: "u3646147", container: s }); })();
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值