本书系统介绍了数据结构与算法的基本概念和相关知识,既注重理论,又注重算法设计,更突出代码实现,是一本着眼于数据结构与基本算法的教学实践的教材。 本书介绍了线性表、队列与栈、树与优先级队列、集合与静态查找表、动态查找表、排序、外部查找与排序、图、最小生成树与最短路径、算法设计思想等内容,将数据结构的理论与真实应用的实践紧密结合,从各种数据结构的代码实现到火车票管理系统的代码实现,手把手地指导读者学习数据结构与算法,帮助读者轻松掌握数据结构与算法的基本知识及基本技能,为后续进行更多专业课程的学习打下扎实基础。
为了帮助有一定编程基础的人群进一步提升自己的Python编程水平及应对编程工作的压力,《算法实例精讲 Python语言实现》全面讲解了9种经典算法理论、65个典型实例的算法设计与分析以及Python语言的代码实现过程。首先从Python数据结构基础入手,然后讲解了各种算法,包括排序算法、动态规划算法、双指针算法、深度优先搜索算法、广度优先搜索算法、贪心算法、递归算法、分治算法、回溯算法等,*后归纳了数据结构中的一些经典问题。这既能帮助初学者理清算法的基本结构,融会贯通地掌握好算法基础知识;又能帮助有一定工作经验的读者巩固基础,进一步提升编程水平;也能帮助求职者为未来面试与工作做好必要的知识储备。 《算法实例精讲 Python语言实现》理论基础与实例应用相结合,实例分析与图解相结合,每个实例均设有详细的思路解析和代码实现,
本书图文并茂、通俗易懂,详细讲解数据结构和算法进阶知识,并融入大量的竞赛实例和解题技巧,可帮助读者领悟数据结构和算法的精髓,并熟练应用其解决实际问题。 本书总计8章。第1章讲解数据结构进阶知识,涉及分块算法和跳跃表;第2章讲解字符串算法进阶知识,涉及AC自动机和后缀数组;第3章讲解树上操作,涉及树链剖分、点分治和边分治;第4章讲解复杂树,涉及KD树、左偏树、动态树和树套树;第5章讲解可持久化数据结构,涉及可持久化线段树和可持久化字典树;第6章讲解图论算法进阶知识,涉及EK算法、Dinic算法、ISAP算法、二分图匹配、最大流最小割和最小费用最大流;第7章讲解动态规划进阶知识,涉及背包问题进阶知识和树形DP进阶知识;第8章讲解复杂动态规划及其优化,涉及数位DP、插头DP、斜率优化和四边不等式优化。 本书面向对数据结
机器学习是人工智能研究领域中的一个极其重要的方向。在现今大数据时代的背景下,捕获数据并从中萃取有价值的信息或模式,使得这一过去为分析师与数学家所专属的研究领域越来越为人们瞩目。 本书通过精心编排的实例,切入日常工作任务,摒弃学术化语言,利用高效可复用的Python代码阐释如何处理统计数据,进行数据分析及可视化。读者可从中学到一些核心的机器学习算法,并将其运用于某些策略性任务中,如分类、预测及推荐等。 本书适合机器学习相关研究人员及互联网从业人员学习参考。
本书由江苏省信息学奥林匹克竞赛委员会组织富有算法竞赛教学经验的省内知名一线教师编写。以程序设计中的常用算法与数据结构为主要内容,来训练计算思维,提升用算法和数据结构来解决实际问题的能力。力求用浅显易懂的语言来描述数据结构中的哈希表、树、图的概念及其存储。通过经典的问题分析,来渗透动态规划的状态表示及其常用的优化策略。结合算法和数据结构,系统的介绍树和图的基本算法及其初等数论和组合数学相关知识。 本书可以作为中小学生程序设计的拓展教材,也可供大学生及算法爱好者参考。
大多数软件开发人员在复杂的代码上浪费了大量的时间。《整洁代码的艺术》提出的九大原则将教会您如何编写清晰、可维护且功能完备的代码。本书的指导原则很简单:缩减和简化,将精力投入到重要的工作上,省下大量的时间,卸下代码维护的重担。 热销书作者克里斯蒂安 迈尔在本书中利用他的经验帮助许多程序员完善他们的编码技能。他给出专业建议和真实例子,展示如何:利用80/20原则,专注于重要任务 要紧的那20%代码;避免孤立编码,创建小可行产品,获得早期反馈;编写整洁、简单的代码,排除混乱;避免导致代码过度复杂的过早优化;平衡您的目标、能力与反馈,达到高产出的心流状态;应用 做好一件事 哲学,极大地提升代码功能;利用 少即是多 哲学,设计有效用户界面;用 专注 原则贯穿所学的这些新技能。 本书采用Python作为示例语言,但
本书由具有丰富编程竞赛经验的作者执笔撰写,荣获日本 2021年IT工程师图书特别大奖 。作为一本算法和数据结构的入门书,本书内容充实、深入浅出,包含了来自知名编程竞赛平台AtCoder的丰富例题和大量配以详细注释的C 代码片段,不仅系统讲解了常见的各类算法,而且还通过图解、代码和思考题的方式,致力提高读者的算法实践能力和问题解决能力。因此这既是一本入门书,能够激发初学者对算法的兴趣,又是一本注重实践的书,让想成为算法高手的读者可以在深入理解算法和数据结构的基础上,快速掌握编程思维,终身受用。 本书既适合初学算法的读者,也适合希望深入掌握各类实用算法设计技术的读者阅读和参考。
本书编者倡导 自主编程 ,以问题解决为主线,致力于提升读者的计算思维与编程技能,引导读者科学地学习算法。全书共分为四章:第一章重点阐述数据抽象的方法及如何选择合适的数据结构,并介绍线性数据结构的基本应用;第二章通过生动的例子,详述了模拟、解析和贪心这三种策略,展示了如何结合严密的算法逻辑与实际操作经验来解决问题;第三章则以深入浅出的方式,讲解了 大化小 的思维方式,介绍了如何利用递推、分治和动态规划等算法来简化和解决复杂问题;第四章全面剖析了好算法的标准,并详细介绍了优化算法时间复杂度和空间复杂度的常用技巧。 本书可以作为数据结构和算法入门的培训教材,也可以作为准备参加全国信息学奥林匹克竞赛的学生赛前集训用书,还可以作为有一定编程语言基础的算法爱好者的参考书籍。
集成学习方法是一类先进的机器学习方法,这类方法训练多个学习器并将它们结合起来解决一个问题,在实践中获得了巨大成功。全书分为三部分。*部分主要介绍集成学习的背景知识;第二部分主要介绍集成学习方法的核心知识,包括Boosting、Bagging、Random Forests等经典算法,平均、投票和Stacking等模型和方法、相关理论分析工作,以及多样性度量和增强方面的进展。第三部分介绍集成学习方法的进阶议题,包括集成修剪、聚类集成和集成学习方法在半监督学习、主动学习、代价敏感学习、类别不平衡学习,以及提升可理解性方面的进展。此外,本书还在每章中的 拓展阅读 部分提供了相关的进阶内容。本书适合对集成学习方法感兴趣的研究人员、学生和实践者阅读。
本书以海量图解的形式,详细讲解常用的数据结构与算法,又融入大量的竞赛实例和解题技巧。通过对本书的学习,读者可掌握12种初级数据结构、15种常用STL函数、10种二叉树和图的应用,以及8种搜索技术,并领悟不同的数据结构和算法的精髓,熟练应用各种算法解决实际问题。 本书总计9章。第1章讲解C 语言基础,包括语法、函数、递归和数组;第2章讲解算法入门知识,包括算法复杂度计算、贪心算法、分治算法和STL应用;第3章讲解线性表的应用,包括顺序表、单链表、双向链表、循环链表和静态链表;第4章讲解栈和队列的应用,包括顺序栈、链栈、顺序队列和链队列;第5章讲解树的应用,包括树的存储、二叉树遍历与还原、哈夫曼编码;第6章讲解图论基础,包括图的存储、图的遍历和图的连通性;第7章讲解图的应用,包括短路径、小生成树、拓扑排序
本书归纳了程序员面试中的经典算法题,并按照由浅入深、循序渐进的顺序讲解。本书首先讲解程序员面试时需要了解的制作简历的技巧和IT名企的面试流程,以及面试时经常忽略的代码规范性问题。然后详细分析程序的时间复杂度和空间复杂库,包括如何把控程序的实际运行时间,以及编程语言的内存管理。接着讲解数组、链表、哈希表、字符串、栈与队列、二叉树、回溯算法、贪心算法、动态规划的理论基础及其相关题目。本书采用了力扣(LeetCode)的原题,方便读者在学习算法的同时,及时练习相关代码,加深对相关概念的理解。本书适合所有程序员阅读,特别是正在准备面试的程序员。希望本书可以帮助读者循序渐进地学习算法,并搭建起知识框架,提升算法功力。
本书围绕黎曼流形优化发展过程中的理论前沿与热点问题,比较全面和系统地介绍了黎曼流形优化的基本原理和应用实践的最新成果。全书共7章,分为理论与应用两个部分。理论部分包括黎曼流形内涵、常用黎曼流形及其几何结构、收缩、低秩流形收缩、黎曼最速下降法、黎曼牛顿法、黎曼共轭梯度法、黎曼信赖域法和黎曼拟牛顿法等内容。应用部分包括鉴别性结构化字典学习、多源多波段图像融合、特征值问题求解(单位球面约束的Rayleigh商最小化、Stiefel流形上的Brockett函数最小化)等。本书内容新颖、体系完整,具有系统性、实用性、先进性和前瞻性。
本书是用轻松有趣的方法学习算法的入门指南。按照算法策略分为8章。第1章以算法之美、趣味故事引入算法,讲解算法复杂度的计算方法,以及爆炸性增量问题。2~7章讲解经典算法,包括贪心算法、分治算法、动态规划算法、回溯法、分支限界法、网络流算法。第8章讲解实际应用中的算法和高频面试算法,包括启发式搜索、敏感词过滤、LRU算法、快慢指针、单调栈、单调队列、零钱兑换、股票交易等。每一种经典算法都有4~8个实例,多数按照问题分析、算法设计、完美图解、算法详解、算法分析及优化拓展的流程进行讲解。全书讲解清晰,通俗易懂,紧扣工程教育认证的要求和实用性,力求满足新工科人才培养的需要。 本书为河南省 十四五 普通高等教育规划教材,提供了丰富的教学资源与答疑服务,包括源代码、课件、教案、习题、在线答疑和在线测试系
本书由具有丰富编程竞赛经验的作者执笔撰写,荣获日本“2021年IT工程师图书特别大奖”。作为一本算法和数据结构的入门书,本书内容充实、深入浅出,包含了来自知名编程竞赛平台AtCoder的丰富例题和大量配以详细注释的C 代码片段,不仅系统讲解了常见的各类算法,而且还通过图解、代码和思考题的方式,致力提高读者的算法实践能力和问题解决能力。因此这既是一本入门书,能够激发初学者对算法的兴趣,又是一本注重实践的书,让想成为算法高手的读者可以在深入理解算法和数据结构的基础上,快速掌握编程思维,终身受用。 本书既适合初学算法的读者,也适合希望深入掌握各类实用算法设计技术的读者阅读和参考。
大模型技术掀起了新一轮人工智能浪潮,以ChatGPT 为核心的大模型相关技术可以应用于搜索、对话、内容创作等众多领域,在推荐系统领域的应用也不例外。 本书主要分为3部分。 第1部分简单介绍大模型相关技术,包括大模型的预训练、微调、在线学习、推理、部署等。 第2部分将大模型在传统推荐系统中的应用抽象为4种范式 生成范式、预训练范式、微调范式、直接推荐范式,并对每种范式给出算法原理说明、案例讲解和代码实现。 第3部分以电商场景为例,讲解大模型在电商中的7种应用,包括生成用户兴趣画像、生成个性化商品描述信息、猜你喜欢推荐、关联推荐、冷启动问题、推荐解释和对话式推荐,每种应用场景都包含完整的步骤说明和详细的代码实现,手把手教你构建大模型推荐系统。 本书适合有一定推荐系统基础,期望深入了解和学习大模型技术
本书全面、系统地总结了在准备程序员面试过程中的数据结构与算法。本书首先详细讨论整数、数组、链表、字符串、哈希表、栈、队列、二叉树、堆和前缀树等常用的数据结构,然后深入讨论二分查找、排序、回溯法、动态规划和图搜索等算法。除了介绍相应的基础知识,每章还通过大量的高频面试题系统地总结了各种数据结构与算法的应用场景及解题技巧。本书适合所有正在准备面试的程序员阅读。无论是计算机相关专业的应届毕业生还是初入职场的程序员,本书总结的数据结构和算法的基础知识及解题经验都不仅可以帮助他们提高准备面试的效率,还可以增加他们通过面试的成功率。
本书图文并茂、通俗易懂,详细讲解常用的算法知识,又融入大量的竞赛实例和解题技巧,可帮助读者熟练应用各种算法解决实际问题。本书总计8章。第1章讲解STL,涉及双端队列、优先队列、位图、集合、映射和STL中的常用函数;第2章讲解实用的数据结构,涉及并查集、倍增、稀疏表、区间最值查询、最近公共祖先、树状数组和线段树;第3章讲解查找算法,涉及散列表、字符串模式匹配和字典树;第4章讲解平衡树,涉及树高与性能、平衡二叉搜索树、树堆和伸展树;第5章讲解图论提高方面的知识,涉及连通图与强连通图、桥与割点、双连通分量的缩点和Tarjan算法;第6章讲解图论算法,涉及最小生成树、最短路径、拓扑排序和关键路径;第7章讲解搜索算法提高方面的知识,涉及剪枝优化、嵌套广度优先搜索、双向广度优先搜索和启发式搜索;第8章讲解动态规划
演化学习利用演化算法求解机器学习中的复杂优化问题, 在实践中取得了许多成功, 但因其缺少坚实的理论基础, 在很长时期内未获得机器学习社区的广泛接受. 本书主要内容为三位作者在这个方向上过去二十年中主要工作的总结. 全书共18 章, 分为四个部分: 部分(第1~2 章) 简要介绍演化学习和一些关于理论研究的预备知识; 第二部分(第3~6章) 介绍用于分析运行时间复杂度和逼近能力这两个演化学习的基本理论性质的通用工具; 第三部分(第7~12 章) 介绍演化学习关键因素对算法性能影响的一系列理论结果, 包括交叉算子、解的表示、非精确适应度评估、种群的影响等; 第四部分(第13~18 章) 介绍一系列基于理论结果启发的具有一定理论保障的演化学习算法. 本书适合对演化学习感兴趣的研究人员、学生和实践者阅读. 书中第二部分内容或可为有兴趣进一步探索演化学习理
本书从一系列有趣的生活实例出发,全面介绍了构造算法的基础方法及其广泛应用,生动展现了算法的趣味性和实用性。书中介绍了算法在多个领域的应用,如图像处理、物理实验、计算机图形学、数字音频处理、机器学习等。其中,既有各种大名鼎鼎的算法,如神经网络、遗传算法、离散傅里叶变换算法、KNN、贝叶斯算法,也有不起眼的排序和概率计算算法。本书讲解浅显易懂而不失深度和严谨,对程序员有很大的启发意义。书中所有示例都与生活息息相关,充分地展现了算法解决问题的本质,让你爱上算法,乐在其中。本书在第1版的基础上新增了图像处理算法、游戏开发中检测碰撞常用的分离轴 (SAT)算法、垃圾邮件过滤相关的算法、中文分词算法、限流算法、手写数字识别和变声器等,进一步提升趣味性。 本书适合软件开发人员、编程和算法爱好者以及