回 帖 发 新 帖 刷新版面

主题:算 法 设 计 题 集

第一章  算法初步

第一节  程序设计与算法

     

一、算法
    算法是解决问题方法的精确描述,但是并不是所有问题都有算法,有些问题经研究可行,则相应有算法,但这并不是说问题就有结果。上述的“可行”,是指对算法的研究。
    1.待解问题的描述
    待解问题表述应精确、简练、清楚,使用形式化模型刻划问题是最恰当的。例如,使用数学模型刻划问题是最简明、严格的,一旦问题形式化了,就可依据相应严格的模型对问题求解。
    2.算法设计
    算法设计的任务是对各类具体问题设计良好的算法及研究设计算法的规律和方法。常用的算法有:穷举搜索法、递归法、回溯法、贪心法、分治法等。
    3.算法分析
    算法分析的任务是对设计出的每一个具体的算法,利用数学工具,讨论各种复杂度,以探讨某种具体算法适用于哪类问题,或某类问题宜采用哪种算法。
    算法的复杂度分时间复杂度和空间复杂度。
     .时间复杂度:在运行算法时所耗费的时间为f(n)(即 n的函数)。
     .空间复杂度:实现算法所占用的空间为g(n)(也为n的函数)。
    称O(f(n))和O(g(n))为该算法的复杂度。

    二、程序设计
    1.程序
    程序是对所要解决的问题的各个对象和处理规则的描述,或者说是数据结构和算法的描述,因此有人说,数据结构+算法=程序。
    2.程序设计
    程序设计就是设计、编制和调试程序的过程。
    3.结构化程序设计
    结构化程序设计是利用逐步求精的方法,按一套程式化的设计准则进行程序的设计。由这种方法产生的程序是结构良好的。所谓“结构良好”是指:
    (1)易于保证和验证其正确性;
    (2)易于阅读、易于理解和易于维护。
    按照这种方法或准则设计出来的程序称为结构化的程序。
   “逐步求精”是对一个复杂问题,不是一步

回复列表 (共16个回复)

11 楼

第一楼的那个程序“第一层”中的有个地方可以去掉吧
if  (l=g*120)and(l mod g=0)  then
          writeln(m:5,667-m:5);
应该可以改成
if l=g*120 then
writeln(m:5,667-m:5);
虽说意义上有点缺,不过实际用起来结果是一样的
还有“第二层”中的 if  not((a  mod  i=0)or(b  mod  i=0))  then  gcd:=i;
这一句有错误,应改成if (a mod i=0)and(b mod i=0) then gcd:=i;

12 楼

怎么和我的那本一样啊?
好啊!~!!

13 楼

其实这是在网上复制过来的啊,我一看就知啦

14 楼

谁心情这么好贴的~~~~

15 楼

先顶一下吧~~~~~~~~~~~~~~~~~~~~~~

16 楼

能教我树状数组怎么用到二维吗?

我来回复

您尚未登录,请登录后再回复。点此登录或注册