算法学习与应用从入门到精通 - (EPUB全文下载)

文件大小:0.46 mb。
文件格式:epub 格式。
书籍内容:

算法学习与应用从入门到精通
第1章 算法是程序的灵魂
第2章 常用的算法思想
第3章 线性表、队列和栈
第4章 树
第5章 图
第6章 查找算法
第7章 内部排序算法
第8章 外部排序算法
第9章 经典的数据结构问题
第10章 解决数学问题
第11章 解决趣味问题
第12章 解决图像问题
第13章 算法的经典问题
第14章 解决奥赛问题
第15章 常见算法应用实践
第16章 俄罗斯方块游戏
第17章 学生成绩管理系统
第18章 绘图板系统
第19章 UDP传输系统
第20章 推箱子游戏
欢迎来到异步社区!
第1章 算法是程序的灵魂
算法是程序的灵魂,只有掌握了算法,才能轻松地驾驭程序开发。软件开发工作不是按部就班的,而是选择一种最合理的算法去实现项目功能。算法能够引导开发者在面对一个项目功能时用什么思路去实现,有了这个思路后,编程工作只需遵循这个思路去实现即可。在本章将详细讲解计算机算法的基础知识,为读者步入后面的学习打下基础。
1.1 算法的基础
知识点讲解:光盘:视频讲解\第1章\算法的基础.avi
自然界中的很多事物并不是独立存在的,而是和许多其他事物有着千丝万缕的联系。就拿算法和编程来说,两者之间就有着必然的联系。在编程界有一个不成文的原则,要想学好编程就必须学好算法。要想获悉这一说法的原因,先看下面对两者的定义。
(1)算法:是一系列解决问题的清晰指令,算法代表着用系统的方法描述解决问题的策略机制。也就是说,能够对符合一定规范的输入,在有限时间内获得所要求的输出。如果一个算法有缺陷,或不适合于某个问题,执行这个算法将不会解决这个问题。不同的算法可能用不同的时间、空间或效率来完成同样的任务。
(2)编程:是让计算机为解决某个问题而使用某种程序设计语言编写程序代码,并最终得到结果的过程。为了使计算机能够理解人的意图,人类就必须将需要解决的问题的思路、方法和手段通过计算机能够理解的形式“告诉”计算机,使计算机能够根据人的指令一步一步去工作,完成某种特定的任务。编程的目的是实现人和计算机之间的交流,整个交流过程就是编程。
在上述对编程的定义中,核心内容是思路、方法和手段等,这都需要用算法来实现。由此可见,编程的核心是算法,只要算法确定了,后面的编程工作只是实现算法的一个形式而已。
1.1.1 算法的特征
在1950年,Algorithm(算法)一词经常同欧几里德算法联系在一起。这个算法就是在欧几里德的《几何原本》中所阐述的求两个数的最大公约数的过程,即辗转相除法。从此以后,Algorithm这一叫法一直沿用至今。
随着时间的推移,算法这门科学得到了长足的发展,算法应该具有如下5个重要的特征。
① 有穷性:保证执行有限步骤之后结束。
② 确切性:每一步骤都有确切的定义。
③ 输入:每个算法有零个或多个输入,以刻画运算对象的初始情况,所谓零个输入是指算法本身舍弃了初始条件。
④ 输出:每个算法有一个或多个输出,显示对输入数据加工后的结果,没有输出的算法是毫无意义的。
⑤ 可行性:原则上算法能够精确地运行,进行有限次运算后即可完成一种运算。
1.1.2 何为算法
为了理解什么是算法,先看一道有趣的智力题。
“烧水泡茶”有如下5道工序:①烧开水、②洗茶壶、③洗茶杯、④拿茶叶、⑤泡茶。
烧开水、洗茶壶、洗茶杯、拿茶叶是泡茶的前提。其中,烧开水需要15分钟,洗茶壶需要2分钟,洗茶杯需要1分钟,拿茶叶需要1分钟,泡茶需要1分钟。
下面是两种“烧水泡茶”的方法。
1.方法1
第一步:烧水。
第二步:水烧开后,洗刷茶具,拿茶叶。
第三步:沏茶。
2.方法2
第一步:烧水。
第二步:烧水过程中,洗刷茶具,拿茶叶。
第三步:水烧开后沏茶。
问题:比较这两个方法有何不同,并分析哪个方法更优。
上述两个方法都能最终实现“烧水泡茶”的功能,每种方法的3个步骤就是一种“算法”。算法是指在有限步骤内求解某一问题所使用的一组定义明确的规则。通俗点说,就是计算机解题的过程。在这个过程中,无论是形成解题思路还是编写程序,都是在实施某种算法。前者是推理实现的算法,后者是操作实现的算法。
1.2 计算机中的算法
知识点讲解:光盘:视频讲解\第1章\计算机中的算法.avi
众所周知,做任何事情都需要一定的步骤。计算机虽然功能强大,能够帮助人们解决很多问题,但是计算机在解决问题时,也需要遵循一定的步骤。在编写程序实现某个项目功能时,也需要遵循一定的算法。在本节的内容中,将一起探寻算法在计算机中的地位,探索算法在计算机中的基本应用知识。
1.2.1 认识计算机中的算法
计算机中的算法可分为如下两大类。
① 数值运算算法:求解数值。
② 非数值运算算法:事务管理领域。
假设有一个下面的运算:1×2×3×4×5,为了计算上述运算结果,最普通的做法是按照如下步骤进行计算。
第1步:先计算1乘以2,得到结果2。
第2步:将步骤1得到的乘积2乘以3,计算得到结果6。
第3步:将6再乘以4,计算得24。
第4步:将24再乘以5,计算得120。
最终计算结果是120,上述第1步到第4步的计算过程就是一个算法。如果想用编程的方式来解决上述运算,通常会使用如下算法来实现。
第1步:假设定义t=1。
第2步:使i=2。
第3步:使t×i,乘积仍然放在变量t中,可表示为t×i→t。
第4步:使i的值+1,即i+1→i。
第5步:如果i5,返回重新执行步骤3以及其后的步骤4和步骤5;否则,算法结束。
由此可见,上述算法方式就是数学中的“n!”公式。既然有了公式,在具体编程的时候,只需使用这个公式就可以解决上述运算的问题。
再看下面的一个数学应用问题。
假设有80个学生,要求打印输出成绩在60分以上的学生。
在此用n来表示学生学号,ni表示第i个学生学号;cheng表示学生成绩,chengi表示第i个学生成绩。根据题目要求,可以写出如下算法。
第1步:1→i。
第2步:如果chengi60,则打印输出ni和chengi,否则不打印输出。
第3步:i+1→i。
第4步:如果i ............

以上为书籍内容预览,如需阅读全文内容请下载EPUB源文件,祝您阅读愉快。

版权声明:书云(openelib.org)是世界上最大的在线非盈利图书馆之一,致力于让每个人都能便捷地了解我们的文明。我们尊重著作者的知识产权,如您认为书云侵犯了您的合法权益,请参考版权保护声明,通过邮件openelib@outlook.com联系我们,我们将及时处理您的合理请求。 数研咨询 流芳阁 研报之家 AI应用导航 研报之家
书云 Open E-Library » 算法学习与应用从入门到精通 - (EPUB全文下载)