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