1、 算法的基本概念 算法(Algorithm)是为了解决某类问题而规定的一个有限长的操作序列。算法的概念 有穷性确定性可行性有输入一个算法必须总是在执行有穷步后结束,且每一步都必须在有穷时间内完成。有输出算法的特性 有穷性确定性可行性有输入一个算法必须总是在执行有穷步后结束,且每一步都必须在有穷时间内完成。有输出算法的特性 有穷性确定性可行性有输入对于每种情况下所应执行的操作,在算法中都有确切的规定,使算法的执行者或阅读者都能明确其含义及如何执行。有输出#include main()double score10,sum=0.0;int i;printf(input scores:);for(i=
2、0;i10;i+)scanf(%lf,&scorei);for(i=0;i10;i+)sum=sum+scorei;printf(Average Score is%fn,sum/10);有穷性确定性可行性有输入算法中的所有操作都可以通过已经实现的基本操作运算有限次实现之。有输出1+2+3+100=?有穷性确定性可行性有输入作为算法加工对象的量值,通常体现为算法中的一组变量。有些输入量需要在算法执行过程中输入,而有的算法表面上可以没有输入,实际上已被嵌入算法之中。有输出 有穷性确定性可行性有输入它是一组与“输入”有确定关系的量值,是算法进行信息加工后得到的结果。有输出1+2+3+100=?505
3、0 在合理的数据输入下,能够在有限的时间内得到正确的结果。通常对算法是否“正确”的理解可以有以下四个层次:算法优劣的评价 a程序中不含语法错误;b程序对于几组输入数据能够得出满足要求的结果;算法优劣的评价正确性 c程序对于精心选择的、典型、苛刻且带有刁难性的几组输入数据能够得出满足要求的结果;算法优劣的评价正确性利用计算器求61000=?d程序对于一切合法的输入数据都能得出满足要求的结果。显然达到第d层的意义下的正确是极为困难的,一般情况下,通常以第c层意义的正确性作为衡量一个程序是否正确的标准。算法优劣的评价正确性 算法主要是为了人的阅读与交流,其次才是为计算机执行,因此算法应该易于人的理解
4、;另一方面,晦涩难读的程序易于隐藏较多错误而难以调试。可读性算法优劣的评价#include main()double score10,sum=0.0;int i;printf(input scores:);for(i=0;i10;i+)scanf(%lf,&scorei);for(i=0;i10;i+)sum=sum+scorei;printf(Average Score is%fn,sum/10);当输入的数据非法时,算法应当恰当地作出反映或进行相应处理,而不是产生莫名奇妙的输出结果。并且,处理出错的方法不应是中断程序的执行,而应是返回一个表示错误或错误性质的值。健壮性算法优劣的评价 高效性包括时间和空间两个方面。时间高效是指算法设计合理,执行效率高;空间高效是指算法占用存储容量合理。高效性算法优劣的评价