03逐步求精与分治法.pptVIP

  • 1
  • 0
  • 约6.46千字
  • 约 46页
  • 2019-09-30 发布于福建
  • 举报
C程序设计 (Programming in C ) 这次课的主要内容 自顶向下、逐步求精方法 筛选法求素数 简单排序算法 几种基本的算法设计方法 枚举法、迭代法、递推与递归法、分治法 自顶向下、逐步求精 “自顶向下、逐步求精”的基本思路是:先进行整体规划、再进行详细设计,先抽象后具体。 下面看一个例子,即筛法求素数 大约在公元前250年,古希腊数学家厄拉多赛(Eratosthenes)提出一个造出不超过N的素数构造法,称为厄拉多赛筛法。 它基于这样一个简单的性质:如果n≤N,且n是合数,则n必为一个不大于N的平方根的素数所整除。 基本方法如下:先列出不超过 的全体素数,设为2=p1< p2<... < pk ≤ ,然后依次排列2,3,...,N,在其中留下p1 ( =2 ) ,而把p1的倍数全部划掉,再留下p2 ,而把p2的倍数全部划掉,继续该过程,直到最后留下pk而划去pk的全部倍数,所有留下的数就是不超过N的全体素数。 筛法求素数 求出不大于正整数N的所有素数 排列2,3,...,N,取出2,再从中删除2的倍数; 取出3,再从中删除3的倍数; 剩余的数中最小者k必为素数,取出k,再从中删除k的倍数;重复这一步,直到所有的数都已取走或被删除; 所有取出的数汇集 在一起就形成了不大于N的素数表 筛法求素数 设有两个筛子,分别用sieve和prim

文档评论(0)

1亿VIP精品文档

相关文档