§2.1算法的概念 为了有效地进行解题,不仅需要保证算 法正确,还要考虑算法的质量,选择合适 的算法。希望方法简单,运算步骤少 计算机算法可分为两大类别 ·数值运算算法:求数值解,例如求方程的 根、求函数的定积分等。 非数值运算:包括的面十分广泛,最常见 的是用于事务管理领域,例如图书检索、 人事管理、行车调度管理等。 6
6 §2.1 算法的概念 为了有效地进行解题,不仅需要保证算 法正确,还要考虑算法的质量,选择合适 的算法。希望方法简单,运算步骤少。 计算机算法可分为两大类别: • 数值运算算法:求数值解,例如求方程的 根、求函数的定积分等。 • 非数值运算:包括的面十分广泛,最常见 的是用于事务管理领域,例如图书检索、 人事管理、行车调度管理等
清华大学出版社 TSINGHUA UNIVERSITY PRESS §2.2简单算法举例 例21:求1×2×3×4×5 太繁 步骤1:先求1×2,得到结果2 步骤2:将步骤1得到的乘积2再乘以3,得到结果6 步骤3:将6再乘以4,得24 步骤4:将24再乘以5,得120 如果要求1x2x,×1000,则要写999个步骤 7
7 §2.2 简单算法举例 例2.1: 求1×2×3×4×5 步骤1:先求1×2,得到结果2 步骤2:将步骤1得到的乘积2再乘以3,得到结果6 步骤3:将6再乘以4,得24 步骤4:将24再乘以5,得120 如果要求1×2×…×1000,则要写999个步骤
清华大学出版社 TSINGHUA UNIVERSITY PRESS 可以设两个变量:一个变量代表被乘数, 个变量代表乘数。不另设变量存放乘积结 果,而直接将每一步骤的乘积放在被乘数 变量中。设p为被乘数,为乘数。用循环 算法来求结果,算法可改写 S1:使p=1 S2:使ⅰ2 S3:使p×i,乘积仍放在变量p中,可表示为:p×jp S4:使i的值加1,即计1i。 S5:如果不大于5,返回重新执行步骤S3以及其后 的步骤S4和S5;否则,算法结束。最后得到p的值就 是5的值
8 S1:使p=1 S2:使i=2 S3:使p×i,乘积仍放在变量p中,可表示为:p×ip S4:使i的值加1,即i+1i S5:如果i不大于5,返回重新执行步骤S3以及其后 的步骤S4和S5;否则,算法结束。最后得到p的值就 是5!的值。 可以设两个变量:一个变量代表被乘数,一 个变量代表乘数。不另设变量存放乘积结 果,而直接将每一步骤的乘积放在被乘数 变量中。设p为被乘数,i为乘数。用循环 算法来求结果, 算法可改写:
清华大学出版社 TSINGHUA UNIVERSITY PRESS 如果题目改为:求1×3×5×.×1000算 法只需作很少的改动 SI: 1 简憊 S2:3 S3:p×ip S4: 1+2p S5:若11,返回S3。否则,结束 9
9 S1:1p S2:3i S3:p×ip S4:i+2p S5:若i≤11,返回S3。否则,结束。 如果题目改为:求1×3×5×……×1000算 法只需作很少的改动:
清华大学出版社 TSINGHUA UNIVERSITY PRESS 用这种方法表示的算法具有通用性、灵 活性。S3到S5组成一个循环,在实现算 法时要反复多次执行S3,S4,S5等步骤 ,直到某一时刻,执行S5步骤时经过判 断,乘数记超过规定的数值而不返回S3 步骤为止。此时算法结束,变量p的值就 是所求结果。 10
10 用这种方法表示的算法具有通用性、灵 活性。S3到S5组成一个循环,在实现算 法时 要反复多次执行S3,S4,S5等步骤 ,直到某一时刻,执行S5步骤时经过判 断,乘数i已超过规定的数值而不返回S3 步骤为止。此时算法结束,变量p的值就 是所求结果