一、算法设计与分析

算法是指解决问题的一种方法或一个过程,算法是若干指令的有穷序列,满足性质:

(1)输入:由外部提供的量作为算法的输入

(2)输出:算法产生至少一个量作为输出

(3)确定性:组成算法的每条指令是清晰、无歧义的

(4)有限性:算法中每条指令的执行次数是有限的,执行每条指令的时间也是有限的

算法是问题的程序化解决方案,一个问题可以设计不同的算法来求解,同一个算法可以采用不同的形式来描述:

*描述算法可以有多种方式,如自然语言方式、流程图方式、伪代码方式、计算机语言表示方式与表格方式等。

*当一个算法使用计算机程序语言描述时,就是程序。

算法描述举例:

求两个整数a,b(a>b)的最大公约数的欧几里得算法

(1)a除以b得余数r,若r=0,则b为所求的最大公约数

(2)若r不为0,以b为a,r为b,继续(1)

注意:任意两整数之间总存在最大公约数,上述辗转相除过程中余数逐步变小,相除过程总会结束。

#include<stdio.h>
void main()
{ long a,b,c,r;
  printf("请输入整数a,b: ");
  scanf("%ld,%ld",&a,&b);      /*  输入整数a,b */
  printf("(%ld,%ld)",a,b);
  if(a<b)
     {c=a;a=b;b=c;}       /*  交换a,b ,确保a>b*/
  r=a%b;
  while(r!=0)
     {a=b;b=r;            /*  实施"辗转相除" */
      r=a%b;
     }
  printf("=%ld\n",b);    /*  输出求解结果 */
}

程序是算法用某种程序设计语言的具体实现,程序可以不满足算法的性质

例如操作系统,是一个在无限循环中执行的程序,因而不是一个算法


  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值