第一章算法 进行程序设计,需要具备两方面知识:(1)掌握 一门计算机语言;(2)掌握解题的方法和步骤。 §1算法的概念及特征 §2算法的表示 2021/2/24
1 2021/2/24 第一章 算法 进行程序设计,需要具备两方面知识:⑴掌握 一门计算机语言;⑵掌握解题的方法和步骤。 §1 算法的概念及特征 §2 算法的表示
§1算法的概念及特征(P15) 2 、算法的基本概念 不论是计算机还是人,要完成一项工作都是按 照一定的工作步骤进行的。 例如,去商业大厦买东西,可以按照下面步骤 进行: ①到西校门;②乘106路公交车;③到“商业大 厦”站点下车;④进大厦买东西。 又如,到食堂吃饭,要按照以下步骤进行 ①带上饭碗走进食堂排队;②买饭付钱;到 餐桌吃饭。 2021/2/24
2 2021/2/24 §1 算法的概念及特征(p1-5) 不论是计算机还是人,要完成一项工作都是按 照一定的工作步骤进行的。 例如,去商业大厦买东西,可以按照下面步骤 进行: ①到西校门;②乘106路公交车;③到“商业大 厦”站点下车;④进大厦买东西。 又如,到食堂吃饭,要按照以下步骤进行: ①带上饭碗走进食堂排队;②买饭付钱;③到 餐桌吃饭。 一、算法的基本概念
3 上述两个例子说明,无论完成什么任务,都有 一定的方法和具体步骤 算法( Algorithm)是为解决某个问题而采取的方 法和步骤。 对于同一个问题可以采用不同的方法和步骤即 可以有不同的算法),但应选择最佳的方案。 100 【例1】计算m=∑k k: 方法一:先进行1+2、再加3、再加4、∴、加 到100为止。(做99次加法) 2021/2/24 §1算法的概念及特征
3 2021/2/24 上述两个例子说明,无论完成什么任务,都有 一定的方法和具体步骤。 算法(Algorithm)是为解决某个问题而采取的方 法和步骤。 对于同一个问题可以采用不同的方法和步骤(即 可以有不同的算法),但应选择最佳的方案。 = = 100 k 1 【例1】计算 sum k §1 算法的概念及特征 方法一:先进行1+2、再加3、再加4、…、 加 到100为止。(做99次加法)
方法二:100+(1+99)+(2+98)+…+( 49+51 +50=100+49×100+50=5050。(1次乘法,2次 加法) 些例说明:解决问题的算法有优劣之分。算法 的优劣是程序设计中一个极为重要的问题,不仅要 保证算法正确,而且要考虑算法的质量(方法简单 运算步骤少)。 二、计算机算法的分类 2021/2/24 §1算法的概念及特征
4 2021/2/24 方法二:100+(1+99)+(2+98)+…+(49+51) +50=100+49×100+50=5050。(1次乘法,2次 加法) …… 此例说明:解决问题的算法有优劣之分。算法 的优劣是程序设计中一个极为重要的问题,不仅要 保证算法正确,而且要考虑算法的质量(方法简单、 运算步骤少)。 §1 算法的概念及特征 二、计算机算法的分类
5 分为数值运算算法和非数值运算算法两大类。 数值运算算法:求问题数值解所用的算法。例 如求方程组的解、求函数的定积分等所用的算法都 是数值运算算法。 非数值运算算法:求问题非数值解所用的算法, 它涉及的面比数值运算算法更广。例如在网络搜索 引擎、图书检索、人事管理、行车调度等领中的 算法都是非数值运算算法 2021/2/24 §1算法的概念及特征
5 2021/2/24 分为数值运算算法和非数值运算算法两大类。 数值运算算法:求问题数值解所用的算法。例 如求方程组的解、求函数的定积分等所用的算法都 是数值运算算法。 非数值运算算法:求问题非数值解所用的算法, 它涉及的面比数值运算算法更广。例如在网络搜索 引擎、图书检索、人事管理、行车调度等领域中的 算法都是非数值运算算法。 §1 算法的概念及特征