0 z' R2 f, J/ a) |本书以 Python 语言为平台,分四个部分介绍了算法的基本概念、五种经典的算法思想、重要的数据结构以及实践中常用的几种算法技术。* Z& N7 t& G: _ Z
除第 1 章和第 2 章外,书中每章内容都包括了基本概念、实现方式、具体应用以及达人修炼真题。每一种算法思想中的达人修炼真题都提供了相应的源代码,可供读者运行,从而达到理论与实践并重的目的。本书从算法基本分析到算法基本思想,再到具体应用及大量真题,内容全面,条理清楚,语言通俗。 p5 h9 I' s) B+ X* [3 v9 r本书对计算机及相关专业本科生及研究生的面试、笔试将有所帮助;此外,计算机科学相关领域的工程师以及爱好者也可以将本书作为技术参考书籍,在需要时可查找所需算法的相关内容并从中得到启示;, x0 c% W: M- j y+ i
当然,对计算机科学感兴趣的高中生以及 IT 领域项目经理也可以阅读本书,从而开启算法世界的大门。 & F4 y) T. Z% M) | X D' S" Z 随着大数据处理、人工智能等领域的飞速发展和计算机性能的飞跃性提升,无论在学术界还是产业界,计算机领域的前沿概念与技术都逐步深入到思维层面,数学在这其中发挥的作用越来越重要,越来越多的高深数学理论被运用到实际中来,有效地解决了许多实际问题,例如分析几何、小波分析、数值计算等。这一切让人们逐步意识到计算机程序设计依赖的就是数学知识和算法思想。在软件工程师动手编程完成某一任务之前,先要通过一系列的分析过程来确定解决该任务的方法。首先,分析待求解任务/问题,将其抽象为某种数学模型;然后确定求解该问题时的资源限制(包括时间资源、电力资源、存储资源、计算资源、容错成本等) ;最后在已知信息的基础上,选择已有的算法或提出新的算法,在满足资源限制的情况下解决问题。因此,可以说一个不懂算法的“菜鸟”程序员是无法独立、自主地解决具体工程问题的,也很难写出逻辑严密、简化的高质量代码。 , u2 a ^2 d) S& W
一名优秀的计算机科学领域的工程师或科学家一定对经典算法思想有深入的理解并能够将这些算法灵活应用于解决实际问题的过程中。目前,很多顶尖IT公司都会考查应聘者的算法功底和逻辑思维能力,因为算法功底深厚的应聘者,往往可以使项目的设计模式格外优化,程序逻辑也更为严密清晰。IT 公司的顶尖专家和“达人”都对算法有很深的造诣,同时,项目经理也必须具备超强的逻辑思维能力。 . P+ n1 j0 B; T7 B! r9 @: u# ^+ A对于所有即将迈入职场的计算机科学相关领域的学生而言,应该都希望自己以后能够在职场中逐渐成长为所在细分领域的优秀人才,具备出色完成各类任务、解决各类问题的能力,算法可以说是解决这些问题的关键,而程序语言只是一个外壳。算法的功底与一个计算机科学工程师的水平上限关系密切。所以,如果你想从事计算机科学相关工作,那么就应当认真地培养自己的逻辑思维,从而提高算法功底! ) u: D' N) o6 E2 A
本书的所有作者以及团队均在计算机科学领域有着多年的算法学习经历和IT领域工作经验,对算法有着较为深入的开发与实践。本书是在所有作者(包括未出现在作者名单中的幕后奉献者)钻研算法的基础上,经过长期的应用总结而完成的,并用言简意赅的语言将这些算法问题的答案展现出来。 7 @$ L8 ]% b0 l& s& {
% z4 K0 f/ ?0 X- A0 L7 B+ q本书特色 & x8 d4 r, ~% `当前,已出版的算法书籍不计其数,从经典的《算法导论》到针对具体的细分领域(例如文本处理、神经网络等)相关算法的书籍,每一本都有自己的侧重点与特色。本书的特色主要体现在以下几方面: ( E, j& i+ E. e- g9 e! u% p
1)强调算法基础,理论与应用并重。 - n, \$ ^0 D m
2)包含大量实际应用中的算法真题。 & Q6 X# F' m \5 b+ |0 ^% t3) 本书以Python语言实现。虽然Python中没有指针的概念(只有引用) , 为了便于理解,书中很多地方还是使用了指针,可以认为其等价于引用。 % |, Y# `) b! g8 B" r e0 i- X B7 ~* i: A
4)本书配有核心知识点讲解视频(视频制作由刘玖樽和田思怡完成),讲解内容和程序代码经多次校审和验证(由李海洋、刘玖樽、熊良成和田思怡完成) 。 5 R5 B8 M. a) U! O. i# M