美文网首页
第二章 --程序的灵魂—算法

第二章 --程序的灵魂—算法

作者: Babyzpj | 来源:发表于2018-04-03 21:50 被阅读0次

一、概念性东西

1 一个程序应该包含一下两个方面:
   1.1、对数据的描述。在程序要指定数据的类型和数据的组织形式,即数据结构。
   1.2、对数据的操作。即操作步骤,也就是算法。

2、作为程序设计人员,必须认真考虑和设计数据结构和操作步骤(即算法),有两个公式可以作为参照:
    数据结构 + 算法 = 程序   (沃斯提出)
    
    数据结构 + 算法 + 程序设计方法 + 语言工具和环境 = 算法  (这个公式主要强调程序应该进行结构化设计)

3、算法是灵魂,数据结构是加工对象,语言是工具,编程需要采用合适的方法。
  算法是解决“做什么”和“怎么做”的问题。
  程序中的操作语句,实际上就是算法的体现;
  
 4、算法概念(广义)
 广义的讲,为解决一个问题而采取的方法和步骤,就成为“算法”
 
算法有优劣之分,一般来说,希望采用简单的和运算步骤少的方法。但是既要保证算法正确,又要保证算法质量。

5、计算机算法两大类别
   5.1 数值算法。例如,求解数值解,方程的根、函数的微积分等
   5.2 非数值算法。例如图书检索、人事管理、行车调度管理等

二、算法特性

2.1 有穷性

  一个算法应该包含有限(在合理的范围内)的步骤,而不能是无限的。

2.2 确定性

  算法中的每一个步骤都应该是确定性的,而不是含糊的、模棱两可的。

2.3 有零个或多个输入

  所谓输入是指执行算法时需要从外界取得必要的信息。
  零个输入:无参函数
  多个输入:多参函数

2.4 有一个或多个输出

  算法的目的是为了求解,“解”就是输出。
  没有输出的算法是没有意义的。

2.5 有效性

  算法的每一个步骤都应当能有效地执行,并得到确定的结果。
  例如:若b=0,则a/b是不能被执行的。

三、算法表示

 3.1 自然语言表示算法
 3.2 结构化流程图表示算法
    三种基本结构:顺序、循环、当型
 
    常用的逻辑语句:
        if...else
        while
        for循环

3.3 伪代码表示

3.4 PAD表示

3.5 用计算机语言表示
   C、java 、python等等

四、结构化程序设计方法

问题:
   面临一个复杂的问题,是难以一下子写出一个层次分明、结构清晰、算法正确的程序的。该怎么办?

解决办法:结构化程序设计方法
   基本设计思路:把一个复杂问题的求解过程分阶段进行,每个阶段处理的问题都控制在人门容易理解和处理的范围内。

采用以下方法保证得到结构化的程序:
   1、自顶向下
   2、逐步细化
   3、模块化设计
   4、结构化编码
  在程序设计中常采用模块化设计的方法,尤其是当程序比较复杂是,更有必要。具体如下:在拿到一个程序模块的任务书后,根据程序模块的功能将它划分为若干个子模块,如果嫌这些子模块的规模大,还可以划分为更小的模块。这个过程采用自顶向下的方法来实现。
  程序中的子模块在C语言中(任何语言中)通常用**函数**来实现,子模块通常代码不超过50行,打印时不超过一页。这样的规模便于组织和阅读。

所以,结构化程序设计方法用来解决人脑思维能力的局限性和所处理问题的复杂性之间的矛盾。
在设计好一个结构化算法以后,还要善于进行结构化编码(即用程序语言正确的实现三种基本结构),进行结构化编程序是不困难的。

五、习题

相关文章

  • 第二章 --程序的灵魂—算法

    一、概念性东西 二、算法特性 2.1 有穷性   一个算法应该包含有限(在合理的范围内)的步骤,而不能是无限的。 ...

  • 第二章 算法——程序的灵魂

    一个程序主要包括两方面的内容: 第一是数据结构。是对数据的描述,在程序中要指定哪些数据以及这些数据的类型和数据的组...

  • 第二章 程序的灵魂-算法

    数据的描述+操作的描述(datastructure + algorithm) 教材说还得有 程序设计方法+语言工具...

  • 程序的灵魂-算法

    数据结构只是静态的描述了数据元素之间的关系。 高效的程序需要在数据结构的基础上设计和选择算法。高效的程序包括恰当的...

  • 算法—程序的灵魂

    1.什么是算法,试从日常生活中找3个例子,描述它们的算法。 为解决一个问题而采取的方法和步骤,就是算法 2.什么叫...

  • 程序的灵魂——算法

    软件工程的思想告诉我们,软件包含两部分内容,一部分是计算机可执行的程序和相关的数据,一部分是与程序及数据有关的描述...

  • 01-什么是算法及算法的5个特征

    算法是程序的灵魂,现在火热的人工智能,算法也是核心,所以你知道算法的重要性了吧 程序=数据结构+算法+某种编程语言...

  • Github标星近4w,这应该是最全的Python学算法入门大全

    算法是程序的灵魂,每个程序员,尤其是高手程序员,对算法的掌握应该是如数家珍,必须要熟悉。算法非常枯燥,但是研究透了...

  • ​从0到1只差这20本算法书单

    瑞士著名的科学家N.Wirth教授曾提出:数据结构+算法=程序。 数据结构是程序的骨架,算法是程序的灵魂。 在我们...

  • <技巧>python模块性能测试

    算法是程序的灵魂,优秀的算法能给程序的效率带来极大的提升,而算法的优劣,往往要经过大量的测试.在硬件环境基本不变的...

网友评论

      本文标题:第二章 --程序的灵魂—算法

      本文链接:https://www.haomeiwen.com/subject/hvochftx.html