温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,汇文网负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。
网站客服:3074922707
数据结构
算法
林劼
雅高等学校计算机技术类课程规划教材数据结构与算法主编林劫刘震陈端兵戴波北京大学出版社PEKING UNIVERSITY PRESS前言一、编写背景人工智能、大数据已成为现在计算机与信息技术研究领域的重要研究内容,近年来发展迅猛,大量新技术和新兴企业如雨后春笋般孕育而生。许多学生看到一些公司在招聘时要求的编程语言各不相同,便错误地认为学习计算机知识就是学习各种编程语言,或认为学习计算机知识就是学习最新的编程语言、技术和标准。其实大家都被这些公司误导了,编程语言虽然应该学,但是学习计算机核心理论更重要。因为计算机编程语言和开发平台的更新交替很快,但万变不离其宗的是算法设计和数据结构等基础知识。在用计算机解决实际问题的过程中,至关重要的两大环节是实际问题的计算机算法抽象设计和数据结构设计,因此,“算法设计与分析”和“数据结构”便成为计算机相关专业的两门基础核心课程。我们可以生动地把这些基础课程比拟为“内功”,把新的编程语言、技术和标准比拟为“外功”。如果一味地赶时髦,结果可能是只懂得招式,没有功力,这样是不可能成为高手的市面上多数教材是将“算法设计与分析”和“数据结构”分开的,主要是因为这两门课程的教学重点有所不同。但实际上,这两门课程的知识点共同组成了计算机解决实际问题的主要内容,这两门课程的知识是相互依存、相互衔接、不可分割的。用计算机求解问题时,需要将问题以计算机的方法进行建模和描述,这就是算法设计的过程。算法设计又与数据结构密切相关,不同的算法需要不同的数据结构予以支撑,而不同的数据结构又对算法设计起到一定的制约作用。瑞士著名的计算机科学家、Pascal程序设计语言之父、结构化程序设计首创者、1984年图灵奖获得者N.With于1976年提出了算法+数据结构=程序(Algorithms+Data Structures=Programs)这个公式。在这个著名的公式中,“+”生动地表达了算法和数据结构的相互作用,是程序设计的精髓:“=”形象地刻画了算法和数据结构是构成计算机程序设计的两个关键要素。所以,本书在编写时,我们对“算法设计与分析”和“数据结构”的知识点进行了进一步的梳理,将这两方面知识有机地融入项目驱动的整体化理论实践体系中,让学习者能够真正了解完整的软件设计过程,领略“算法设计与分析”和“数据结构”在整个过程中的相互作用和知识连贯性。让学习者用更少的时间学习到完整的知识和方法,是我们将这两方面知识合编的初衷。