算法

沃思:程序=算法+数据结构。
一个程序主要包括两方面信息:
1.对数据的描述。在程序中要指定用到哪些数据以及这些数据的类型和数据的组织形式,即数据结构;
2.对操作的描述。要求计算机进行操作的步骤,即算法。
(1)数据是程序操作的对象,操作的目的是对数据操作的加工处理,已得到期望的结果。

一个有效的算法应该具有以下特点:
1.有穷性
2.确定性
3.有零个或者多个的输入
4.一个或者多个的输出
5.有效性

自然语言表示算法:
1.表示通俗易懂,但文字很长,容易表现歧义性
2.描述包含分支和循环的算法,不方便
3.除了很简单的问题,一般不用自然语言

流程图表示算法:直观易懂


弊端:
1.传统的流程图用流程线指出各个框的执行顺序,对流程线的使用没有严格限制。
2.使用者可以毫无限制地使流程随意地转来转去,使人难以理解算法逻辑。
因此需要控制流程走向的随意性。

三种基本结构算法:
1.只有一个出口和入口
2.结构内的每一部分都有机会被执行到
3.结构内不存在死循环

用N-S流程图表示算法:
1.一个结构化的算法是由一些基本结构顺序组成的
2.在基本结构之间不存在向前或向后的跳转,流程的转移只存在于一个基本结构范围之内
3.一个非结构化的算法可以用一个等价的结构化算法代替,其功能不变
4.如果一个算法不能分解为若干个基本结构,则它必然不是一个结构化的算法。

伪代码表示算法:
1.伪代码是介于自然语言和计算机语言之间的文字和符号来描述算法
2.用伪代码写算法并无固定的、严格的语法规则,可以用英文,也可以中英文混用。

计算机语言表示算法:

结构化程序设计方法:

  • 结构化程序设计强调程序设计风格和程序结构化的规范化,提倡清晰的结构
  • 基本思路是:把一个复杂问题的求解过程分阶段进行,每个阶段处理的问题都控制在人们容易理解和处理的范围内
  • 采取方法保证得到结构化的程序:
    1.自顶向下
    2.逐步细化
    3.模块化设计
    4.结构化编码

循环结构分为:当型循环和直到型循环。

  • 当型循环结构(前测试型):
    1.用在先判断某些条件是否为真,然后重复执行某段代码的情况下
    2.在循环体执行前先对控制条件进行判断,当条件满足时,再执行循环体,不满足时则退出
  • 直到型循环结构:
    1.先执行了一次循环体之后,再对控制条件进行判断,当条件不满足时执行循环体,满足时则退出。
    2.三要素缺一不可:循环体、循环变量、循环终止条件。

选择结构:用于判断给定的条件,根据判断的结果判断某些条件,根据判断的结果来控制程序的流程。

顺序结构:程序设计是简单的,只要按照解决问题的顺序写出相对应的语句就行,它的执行顺序是自上而下,依次执行。

扩展:
素数:大于1的整数中,除了能被1和自身整除的正整数。

posted @ 2023-03-10 17:42  夏季的雨  阅读(204)  评论(0)    收藏  举报