数据结构与算法概述

(一)一个程序应包括:

  • 对数据的描述。在程序中要指定数据的类型和数据的组织形式,即数据结构。
  • 对操作的描述。即操作步骤,也就是算法。

Niliklaus Wirth提出的公式:数据结构 + 算法 = 程序
更细化的表述为:程序 = 算法 + 数据结构 + 程序设计方法 + 语言工具和环境

(二)算法

  • 算法:用来描述问题的解决方案,是具体的、机械的操作步骤。算法是程序设计的基础和精髓。
  • 计算机算法:计算机能够执行的算法。
    计算机算法分为两大类:数值运算算法,非数值运算算法。

(三)算法的特性
1)有穷性:一个算法应包含有限的操作步骤而不是无限的。每个求解步骤必须在有穷时间内完成。
2)确定性:算法中每一个步骤应当是确定的,不存在二义性。
3)有效性(可行性):每个求解步骤均是计算机可以实现的,并得到确定的结果。
4)有零个或多个输入。
5)有一个或多个输出。

(四)怎样表示一个算法
1)用自然语言表示算法
除了很简单的问题,一般不用自然语言表示算法。
2)用伪代码表示算法
伪代码使用介于自然语言和计算机语言之间的文字和符号来描述算法。
3)用流程图表示算法
流程图表示算法,直观形象,易于理解。
一个流程图包括:

  • 表示相应操作的框
  • 带箭头的流程线
  • 框内外必要的文字说明

三种基本结构的共同特点:

  • 只有一个入口
  • 只有一个出口
  • 结构内的每一部分都有机会被执行到
  • 结构内不存在“死循环”
    数据结构与算法概述_第1张图片
    4)用N-S流程图表示算法
    数据结构与算法概述_第2张图片
    数据结构与算法概述_第3张图片

(五)结构化程序设计方法
1)自顶向下
2)逐步细化
3)模块化设计
4)结构化编码

你可能感兴趣的:(C语言)