C语言学习与总结---第二章:算法初步

第二章:算法初步

  • 1.算法的概念
  • 2.算法的特点
  • 3.算法的表示
    • 3.1 用自然语言表示算法
    • 3.2 用流程图表示算法
    • 3.3用伪代码表示算法
    • 3.4用计算机语言表示算法
  • 4.结构化程序设计方法
  • 5.举例

1.算法的概念

算法(Algorithm)是指解题方案的准确而完整的描述,是一系列解决问题的清晰指令,算法代表着用系统的方法描述解决问题的策略机制。也就是说,能够对一定规范的输入,在有限时间内获得所要求的输出。

一个算法的优劣可以用空间复杂度与时间复杂度来衡量。

计算机算法可分为两大类别:

数值运算算法:求数值解,例如求方程的根、求函数的定积分等。

非数值运算:包括的面十分广泛,最常见的是用于事务管理领域,例如图书检索、人事管理、行车调度管理等。

2.算法的特点

(1).有穷性:包含有限的操作步骤。

(2).确定性:算法中的每一个步骤都应当是确定的,不能是含糊的、模棱两可的。

(3).有零个或多个输入:输入是指在执行算法时需要从外界取得必要的信息。

(4).有一个或多个输出:算法的目的是为了求解,“解” 就是输出。没有输出的算法没有意义。

(5).有效性:算法中的每一个步骤都应当能有效地执行,并得到确定的结果 。

3.算法的表示

可以用不同的方法表示算法,常用的有:

自然语言

传统流程图

结构化流程图

伪代码

计算机语言

3.1 用自然语言表示算法

自然语言就是人们日常使用的语言,可以是汉语或英语或其它语言。

用自然语言表示通俗易懂,但文字冗长,容易出现“歧义性”。自然语言表示的含义往往不大严格,要根据上下文才能判断其正确含义,描述包含分支和循环的算法时也不很方便。

除了那些很简单的问题外,一般不用自然语言描述算法。

3.2 用流程图表示算法

常用流程图符号
C语言学习与总结---第二章:算法初步_第1张图片

三种基本结构:顺序、选择、循环

C语言学习与总结---第二章:算法初步_第2张图片C语言学习与总结---第二章:算法初步_第3张图片C语言学习与总结---第二章:算法初步_第4张图片C语言学习与总结---第二章:算法初步_第5张图片

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

(1)只有一个入口。

(2)只有一个出口。

(3)结构内的每一部分都有机会被执行到。

(4)结构内不存在“死循环”(无终止的循环)。

3.3用伪代码表示算法

伪代码是用介于自然语言和计算机语言之间的文字和符号来描述算法

3.4用计算机语言表示算法

计算机是无法识别流程图和伪代码的。只有用计算机语言编写的程序才能被计算机执行。

特点:用计算机语言表示算法必须严格遵循所用的语言的语法规则,这是和伪代码不同的。

4.结构化程序设计方法

• 把一个大任务分为若干个子任务

• 根据功能进行划分

• 划分时应注意模块的独立性,一个模块完成一项功能,耦合性愈少愈好

5.举例

例:求 1 − 1 2 + 1 3 − 1 4 + . . . − 1 99 + 1 100 1-\frac{1}{2}+\frac{1}{3}-\frac{1}{4}+...-\frac{1}{99}+\frac{1}{100} 121+3141+...991+1001

(1)算法步骤

S1:sign = 1

S2:sum = 1

S3:deno = 2

S4:sign = (-1)×sign

S5:term = sign × (1/deno)

S6:sum = sum + term

S7:deno = deno + 1

S8:若deno ≤ 100返回S4,否则算法结束。

(2)流程图

C语言学习与总结---第二章:算法初步_第6张图片

(3)伪代码

BEGIN{算法开始}
1 → sum
2 → deno
1 → sign
while deno≤100
{
-1 * sign → sign
sign / deno → term
sum + term → sum
deno +1 → deno
}
print sum
END{算法结束}

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