算法是计算科学的核心,在求解实际问题的过程中发挥着重要作用。程序员、算法设计师、架构师、数据分析师等信息技术相关从业人员都应学习算法设计基础知识,积累基础算法,掌握典型的机器学习算法、自然语言处理算法、推荐算法、大规模数据处理算法、密码算法等,理解这些算法在求解实际问题时的优势和局限性并在实践中合理处理相关约束因素。然而,学习和掌握这些知识是一个循序渐进的漫长过程。对于初学者,重要的是在学习程序设计技术的同时,快速了解算法在计算机科学和实践应用中的整体概貌,奠定系统观基础并增强使用算法来求解实际计算问题的信心。
《程序员必会的40种算法》
作者:[加] 伊姆兰·艾哈迈德(Imran Ahmad)
译者:赵海霞
本书是工业界给出的达成上述目标的一个解决方案,致力于利用算法求解实际问题,帮助初学者理解算法背后的逻辑和数学知识,以便最大限度地利用算法。本书概要地讨论算法基础、设计技术、分析方法、排序算法、查找算法、图算法、线性规划算法、机器学习算法、推荐算法、数据算法、密码算法和大规模算法等内容,在讲述方式上忽略对算法细节的讨论,仅给出每个算法的思想和原理,将重点放在如何用Python进行算法实现和算法性能的比较与分析上。读者通过学习本书,可以迅速了解算法的概念,掌握如何用开源包实现各种算法,并理解它们的性能、应用领域和局限性,进而对算法在计算机科学和各种应用领域中的作用有整体了解。本书还包含一些案例(如天气预测、推文聚类和电影推荐引擎),用来说明如何才能最佳地应用这些算法。通过学习本书,你将对使用算法求解实际计算问题充满信心。
读者对象
本书为程序员而写!无论你是希望深刻理解算法背后的数学知识的经验丰富的程序员,还是希望了解如何利用经过实践检验的算法来改进代码设计和编写方式的经验不足的程序员,阅读本书都大有裨益。在阅读本书前必须具有Python编程经验,数据科学知识对阅读本书有帮助,但不是必需的。
本书内容
本书致力于利用算法求解实际问题,分为三部分。
第一部分介绍算法的核心内容,探讨什么是算法、如何设计算法,同时学习在算法中使用的数据结构,还深入讲解排序算法、查找算法和求解图问题的算法。
第二部分讨论各种机器学习算法,包括无监督机器学习算法和传统监督学习算法,详细讨论一些自然语言处理算法,以及推荐引擎。
第三部分讨论更高级的算法,重点讨论密码算法和大规模算法,还探讨在算法实现时应该考虑的实际因素。此外,本书还包含一些案例分析(如天气预测、推文聚类和电影推荐引擎),用来说明如何才能最佳地应用这些算法。
通过阅读本书,你将
探索Python库中的数据结构和算法。
利用网络分析实现欺诈检测的图算法。
使用机器学习算法对类似推文进行聚类,实时处理推文数据。
使用监督学习算法预测天气。
使用孪生神经网络进行独热图像识别。
创建向订阅者推荐相关电影的推荐引擎。
在部署机器学习模型时,使用对称和非对称加密实现可靠的安全。
关于作者 About the Author
伊姆兰·艾哈迈德(Imran Ahmad)是一名经过认证的谷歌讲师,多年来一直在谷歌和学习树(Learning Tree)任教,主要教授Python、机器学习、算法、大数据和深度学习。他在攻读博士学位期间基于线性规划方法提出了名为ATSRA的新算法,用于云计算环境中资源的优化分配。近4年来,他一直在加拿大联邦政府的高级分析实验室参与一个备受关注的机器学习项目,该项目旨在开发机器学习算法,使移民过程自动化。他目前正致力于开发最优地使用GPU来训练复杂的机器学习模型的算法。
About the reviewer 关于审校者
本杰明·巴卡(Benjamin Baka)是一名全栈软件开发人员,热衷于前沿技术和优雅的编程技术,在C++、Java、Ruby、Python和Qt等方面拥有10年以上的经验,目前开展的一些项目可以在其GitHub主页上找到。他目前正在为mPedigree做技术开发工作。
目录
译者序
前言
关于作者</