内容正文:
第一章
如何用计算机解决问题
1.2 算法描述与设计
1.1计算机解决问题的过程
1.2 算法描述与设计
本学科中算法的概念:
算法就是:解决问题的方法和步骤。P5
韩信点兵
两种解题方法
1.枚举法
2.构造法(中国剩余定理)
两种算法
通俗点说,算法就是计算机解题的过程。在这个过程中,无论是形成解题思路还是编写程序,都是在实施某种算法。
1.2 算法描述与设计
1.2.1 算法是“灵魂”
著名的计算机科学家尼克劳斯•沃思指出
算法+数据结构=程序
数据结构是一门专门的课程,主要研究数据之间的关系特点。数据结构的类型会影响算法的选择。
算法独立于任何具体的程序设计语言,一个算法可以用多种程序设计语言来实现。P5
(书P6) 例:计算1+2+3+……+100=?
分析:计算这道题目的算法有限制范围,可以在有限时间内完成,这是算法的第一个特征:有穷性。
计算时可以用纸笔、算盘、运算器和计算机来完成,且计算过程是多样的,但结果是唯一的。这就是算法的可行性、确定性。
计算方法:
⑴把这100个数按顺序相加。
⑵用凑数法:1+99=100,2+98=100,3+97=100,……,49+51,最后只剩下50和100。
⑶计算机计算法:迭代法
算法的另外两个特征:输入、输出。
算法的特征
一个算法应该具有以下五个重要的特征: 书本P5
有穷性: 一个算法必须保证执行有限步之后结束;
确定性: 算法的每一步骤必须有确切的定义;
输入:一个算法有0个或多个输入,以刻画运算对象的初始情况;
输出:一个算法有一个或多个输出,以反映对输入数据加工后的结果。没有输出的算法是毫无意义的;
可行性: 算法原则上能够精确地运行,而且人们用笔和纸做有限次运算后即可完成
1.2.2 描述算法的方法
1 .用自然语言描述算法
即用人们日常使用的语言和数学语言描述的算法。
韩信点兵算法1
从1开始,取出一个自然数判断它被3、5、7整除后的余数是否为2、3、2,如果是,则这个数即是所求的数,求解结束。否则,用下一个数再试,直到找到这个数为止。
自然语言描述
将i的初始值赋为1
如果i<100并且i被3、5、7整除后,余数分别为2、3、2,则输出i的值,转入第4步
将i的值加1,转到第2步
结束程序
1.