今天为大家带来算法的详细教程
算法的特点
算法,顾名思义是为了解决一类问题而制定的一个方法。这与程序设计和数据结构密切相关。算法的描述形式也多种多样,像传统流程图、结构化程序图以及计算机程序语言等等。下面就为大家讲解算法的相关内容。
**确定性**
在C程序中,每一个执行语句的步骤都应当是被确切定义的。同理,算法的每一个步骤也都应当是被确切定义的。任何一个过程不能有二义性,在编辑算法的过程中,必须对每个执行语句做出严格而又清楚的定义。
**有穷性**
在C语言中,每一个算法所执行的语句步数一定是有穷的。并且每一步都可以在有穷的时间内完成,不能无限制的执行下去。如果程序或者程序的某一部分不能在有穷的时间内完成,那么程序就会永无止境的运行下去,进入一个死循环。
**可行性**
在C程序中,每一句执行语句必须可以有效的运行出结果。否则就会出现逻辑性的错误。比如:
int num1,num2,num3; //声明三个整型变量
scanf("%d,%d,%d",&num1,&num2,&num3); //输入这三个数,为其赋值
if(num2!=0) //如果num2的值不为0
num3=num1/num2; //num3的值等于num1的值除num2的值
else
printf("error"); //输出 error
很显然,当 num2 的值为0时,上述代码中的第4行代码就是一个无效的执行语句。因为0不可以做分母。
**输入及输出**
在C语言中,一个完整的算法应该存在一个或者多个输入/输出的值。输入的值作为执行算法的一些初始量,输出的值则为算法执行后的结果。比如:
int a,b,c; //声明三个变量 a b c
scanf("%d,%d,%d",&a,&b,&c); //输入a b c 的值,为其赋值
上述示例的代码就需要输入多个值,为变量赋值。
又如:
main()
{
printf("hello word"); //输出hello Word
}
上述示例的代码就不需要输入值。
算法的优缺点
算法,既然有其优点,自然也会有缺点。
**正确性**
在C语言中,算法的正确性指的是只要输入的数据是合法数据,该算法都可以得到一个确切又准确的值。
**可读性**
在C语言中,算法的可读性指的是一个算法被理解的难易程度。一个算法的可读性越高,那么这个算法后期就越容易被理解。相反,若是一个算法的可读性很低,那么这个算法在后期将很难被修复和完善。
**健壮性**
在C语言中,算法的健壮性指的是一个算法对于非法输入的包容性。因为每一个用户对同一程序的理解不同,因此在程序使用的过程中会出现输入数据非法的情况。而程序的健壮性使得算法不会因为用户的非法输入而瘫痪。
**空间****复杂度和时间复杂度**
在C语言中,算法的空间复杂度和时间复杂度指的是一个算法储存所需要的体积以及这个算法运行所需要的时间。这也是衡量一个算法是否优秀的唯一指标。而到现在,计算机硬件已经高度发达,算法的空间复杂度已经不那么重要了。而如何开发出一个功能复杂却又运行快速的算法成为了现在的目标。
今天的内容就到这里,下期小编将带大家继续学习,各位看官老爷记得查阅哦~
全部0条评论
快来发表一下你的评论吧 !