算法设计与分析 第三章1 循环与递归.pptVIP

  • 33
  • 0
  • 约9.73千字
  • 约 55页
  • 2017-02-07 发布于湖北
  • 举报

算法设计与分析 第三章1 循环与递归.ppt

第三章 算法基本工具和优化技巧 第三章 算法基本工具和优化技巧 利用算法的基本机制——循环和递归设计算法 利用算法的基本操作提高算法效率的技巧 利用数组提高算法质量 建立高效的数学模型 本章主要讲解如何充分利用这些基本的程序设计技术设计高质量的算法,在程序设计与算法设计之间起承上启下的作用 3.1 循环与递归 【例1】求1/1!-1/3!+1/5!-1/7!+…+(-1)n+1/(2n-1)! 分析:此问题中既有累加又有累乘,准确地说累加的对象是累乘的结果。 数学模型1:Sn=Sn-1+(-1)n+1/(2n-1)! 算法设计1:多数初学者会直接利用题目中累加项通式,构造出循环体不变式为: S=S+(-1)n+1/(2n-1)! 需要用二重循环来完成算法,算法1如下: 算法如下: 算法分析: 以上算法是二重循环来完成 ,但算法的效率却太低是O(n2)。 当前一次循环已求出7!,当这次要想求9!时,没必要再从1去累乘到9,只需要充分利用前一次的结果,用7!*8*9即可得到9!,模型为An=An-1*1/((2*n-2)*(2*n-1)。另外运算sign = sign *(-1);总共也要进行n*(n-1)/2次乘法,这也是没有必要的。下面我们就进行改进。 数学模型2:Sn=Sn-1+(-1)n+1An; An=

文档评论(0)

1亿VIP精品文档

相关文档