本书是备受广大读者推崇的数据结构与算法入门教程,已在GitHub获得超60k的 Star,并多次登顶GitHub Trending。书中系统介绍了数据结构与算法基础、复杂度分析、数组与链表、栈与队列、哈希表、树、堆、图、搜索、排序、分治、回溯、动态规划和贪心算法等核心知识,通过清晰易懂的解释和丰富的代码示例,以及生动形象的全彩插图和在线动画图解,揭示算法工作原理和数据结构底层实现,教授读者如何选择和设计算法来解决不同类型的问题,切实提升编程技能,构建完整的数据结构与算法知识体系。
本书从一系列有趣的生活实例出发,全面介绍了构造算法的基础方法及其广泛应用,生动展现了算法的趣味性和实用性。书中介绍了算法在多个领域的应用,如图像处理、物理实验、计算机图形学、数字音频处理、机器学习等。其中,既有各种大名鼎鼎的算法,如神经网络、遗传算法、离散傅里叶变换算法、KNN、贝叶斯算法,也有不起眼的排序和概率计算算法。本书讲解浅显易懂而不失深度和严谨,对程序员有很大的启发意义。书中所有示例都与生活息息相关,充分地展现了算法解决问题的本质,让你爱上算法,乐在其中。本书在第1版的基础上新增了图像处理算法、游戏开发中检测碰撞常用的分离轴 (SAT)算法、垃圾邮件过滤相关的算法、中文分词算法、限流算法、手写数字识别和变声器等,进一步提升趣味性。 本书适合软件开发人员、编程和算法爱好者以及
本书是一本面向问题求解的计算机算法普及读物。笔者挑选了24个问题,有些属于计算机科学中的经典,有些则来自游戏等其他领域的场景,旨在提供一个不同于普通算法教科书的视野。在相关求解算法的介绍上大体遵循问题导入、算法思路、算法描述和算法分析的思路,从而使得对每一个问题和算法的讨论相对独立。全书可以任意顺序选读。 本书适合受过高中及其以上教育的读者,适合作为中学信息技术课程改革和大学计算机基础课的教学参考书,也有助于曾经学过计算机相关课程的读者加深关于算法的认识。
这是一本可帮助读者深度理解并全面掌握ClickHouse运行原理并进行实践开发的工具书,涵盖了ClickHouse的时代背景、发展历程、核心概念、基础功能、运行原理、实践指导等多个维度的内容,尤其是在ClickHouse*核心的部分 MergeTree表引擎与分布式方面,书中对其实现原理和应用技巧进行了详细解读。 本书采用浅显易懂的语言 大量演示案例 大量示意图例的形式呈现,以求让读者在*短的时间内,以*舒服的方式,获得*核心的知识。本书的理论观点来自作者在OLAP领域10余年的工作思考与总结;功能与实操的素材来自作者在工作中对ClickHouse的深度应用与实践;原理解析部分的素材来自对大量专业文献的钻研与源码级的调试与解读。 本书在逻辑上分为三大部分: 第1~2章从宏观的角度出发,描述了时代背景、ClickHouse的发展历程及其核心特点。其中,对MOLAP、ROLAP和HORAP三
本书定位于夯实数学建模基础,采用主流编程方法和简洁代码实现常用的数学建模算法,以案例为导向,围绕数学建模知识体系展开。全书分5篇,共11章。前两章是数学建模基础篇,包括数学建模介绍、数学建模的一般流程(初等模型)、如何从算法到编程实现(层次分析法与自定义函数);接着按算法板块组织内容,包括微分方程模型篇(人口模型、传染病模型)、优化模型篇(规划模型、投资优化策略、优化模型进阶)、评价模型篇(经典评价模型、模糊理论)、预测模型篇(常规预测模型、时间序列分析)。本书有配套源码资源和电子课件。 本书可作为高等院校数学建模的入门教材,也可作为数学建模指导教师的参考资料,还可作为其他相关行业人员、科研人员使用数学模型解决实际问题的参考用书。
内 容 提 要 本书结合实际应用场景讲解数据结构和算法,涵盖常用、常考的数据结构和算法的原理讲解、代码实现和应用场景等。 本书分为11章。第1章介绍复杂度分析方法。第2章介绍数组、链表、栈和队列这些基础的线性表数据结构。第3章介绍递归编程技巧、8种经典排序、二分查找及二分查找的变体问题。第4章介绍哈希表、位图、哈希算法和布隆过滤器。第5章介绍树相关的数据结构,包括二叉树、二叉查找树、平衡二叉查找树、递归树和B 树。第6章介绍堆,以及堆的各种应用,包括堆排序、优先级队列、求Top K、求中位数和求百分位数。第7章介绍跳表、并查集、线段树和树状数组这些比较高级的数据结构。第8章介绍字符串匹配算法,包括BF算法、RK算法、BM算法、KMP算法、Trie树和AC自动机。第9章介绍图及相关算法,包括深度优先搜索、广度优先搜索、拓扑排序
本书通过算法所解决的现实世界的实例来介绍各种算法的思想和技术细节。算法用伪代码给出,使得后续可以很容易地用一种计算机语言来实现。
本书是用轻松有趣的方法学习算法的入门指南。按照算法策略分为8章。第1章以算法之美、趣味故事引入算法,讲解算法复杂度的计算方法,以及爆炸性增量问题。2~7章讲解经典算法,包括贪心算法、分治算法、动态规划算法、回溯法、分支限界法、网络流算法。第8章讲解实际应用中的算法和高频面试算法,包括启发式搜索、敏感词过滤、LRU算法、快慢指针、单调栈、单调队列、零钱兑换、股票交易等。每一种经典算法都有4~8个实例,多数按照问题分析、算法设计、完美图解、算法详解、算法分析及优化拓展的流程进行讲解。全书讲解清晰,通俗易懂,紧扣工程教育认证的要求和实用性,力求满足新工科人才培养的需要。 本书为河南省 十四五 普通高等教育规划教材,提供了丰富的教学资源与答疑服务,包括源代码、课件、教案、习题、在线答疑和在线测试系
内容介绍 本书基于Python全面介绍了机器学习在信贷风控领域的应用与实践,从原理、算法与工程实践3个维度全面展开,包含21种实用算法和26个解决方案。 作者是智能风控、人工智能和算法领域的专家,曾在多家知名金融科技企业从事风控算法方面的研究与实践,经验丰富,本书得到了风控领域9位专家的高度评价。 全书一共8章,每个章节都由问题、算法、案例三部分组成,具有系统性和实战性。 第1-2章讲解了信贷业务的基础知识以及常用的规则引擎、信用评估引擎的建模方法。 第3章以项目冷启动为背景,讲解了风控领域应用广泛的迁移学习方法。 第4-5章介绍了幸存者偏差与不均衡学习中所使用的无监督学习与半监督学习方法。 第6章阐述了无监督的异常识别算法,该算法常用于数据清洗与冷启动项目,是反欺诈引擎中常用的个体欺诈检测方法。 第7章分享了一
本书是《漫画算法:小灰的算法之旅》的续作,通过主人公小灰的心路历程,用漫画的形式讲述了多个数据结构、算法及复杂多变的算法面试题目。 第1章介绍了几种典型的排序算法,包括选择排序、插入排序、希尔排序、归并排序、基数排序。 第2章介绍了"树 结构的高级应用,包括二叉查找树、AVL树、红黑树、B树和B 树。 第3章介绍了"图 结构的概念,以及深度优先遍历、广度遍历、单源Z短路径、多源Z短路径算法。 第4章介绍了"查找 相关的算法和数据结构,包括二分查找算法、RK算法,KMP算法,以及"跳表 这种用于高效查找的数据结构。 第5章介绍了多种职场上流行的算法面试题目及详细的解题思路。例如螺旋遍历二维数组、寻找数组中第k大元素、求股票交易的Z大收益等等。
集成学习方法是一类先进的机器学习方法,这类方法训练多个学习器并将它们结合起来解决一个问题,在实践中获得了巨大成功。全书分为三部分。*部分主要介绍集成学习的背景知识;第二部分主要介绍集成学习方法的核心知识,包括Boosting、Bagging、Random Forests等经典算法,平均、投票和Stacking等模型和方法、相关理论分析工作,以及多样性度量和增强方面的进展。第三部分介绍集成学习方法的进阶议题,包括集成修剪、聚类集成和集成学习方法在半监督学习、主动学习、代价敏感学习、类别不平衡学习,以及提升可理解性方面的进展。此外,本书还在每章中的 拓展阅读 部分提供了相关的进阶内容。本书适合对集成学习方法感兴趣的研究人员、学生和实践者阅读。
大多数软件开发人员在复杂的代码上浪费了大量的时间。《整洁代码的艺术》提出的九大原则将教会您如何编写清晰、可维护且功能完备的代码。本书的指导原则很简单:缩减和简化,将精力投入到重要的工作上,省下大量的时间,卸下代码维护的重担。 热销书作者克里斯蒂安 迈尔在本书中利用他的经验帮助许多程序员完善他们的编码技能。他给出专业建议和真实例子,展示如何:利用80/20原则,专注于重要任务 要紧的那20%代码;避免孤立编码,创建小可行产品,获得早期反馈;编写整洁、简单的代码,排除混乱;避免导致代码过度复杂的过早优化;平衡您的目标、能力与反馈,达到高产出的心流状态;应用 做好一件事 哲学,极大地提升代码功能;利用 少即是多 哲学,设计有效用户界面;用 专注 原则贯穿所学的这些新技能。 本书采用Python作为示例语言,但
深度学习和传统机器视觉技术相融合,可以大大提高AI 技术的效率和精度。本书分上、下两篇,共19 章内容,详细讲解了机器视觉及深度学习的理论和编程实践。上篇介绍理论算法。包括机器视觉的经典图像处理算法、深度学习的理论基础和目前常用的深度学习框架。下篇介绍编程环境及系统搭建。讲解了机器视觉图像处理算法及深度学习的编程工具 VC 、Python 和 OpenCV;利用 VC 和 Python 工具,搭建图像处理的工程界面;介绍了常用的9 种深度学习框架的获得方法、安装设置、工程创建,以及深度学习工程的编译、训练、评估与部署方法。每一个搭建的工程,都提供一套可下载的源代码程序,方便读者下载学习。本书理论与实践兼顾,可为从事机器视觉技术及人工智能研究和应用的工程技术人员提供帮助,也可供高等院校相关专业师生学习参考。
演化学习利用演化算法求解机器学习中的复杂优化问题, 在实践中取得了许多成功, 但因其缺少坚实的理论基础, 在很长时期内未获得机器学习社区的广泛接受. 本书主要内容为三位作者在这个方向上过去二十年中主要工作的总结. 全书共18 章, 分为四个部分: 部分(第1~2 章) 简要介绍演化学习和一些关于理论研究的预备知识; 第二部分(第3~6章) 介绍用于分析运行时间复杂度和逼近能力这两个演化学习的基本理论性质的通用工具; 第三部分(第7~12 章) 介绍演化学习关键因素对算法性能影响的一系列理论结果, 包括交叉算子、解的表示、非精确适应度评估、种群的影响等; 第四部分(第13~18 章) 介绍一系列基于理论结果启发的具有一定理论保障的演化学习算法. 本书适合对演化学习感兴趣的研究人员、学生和实践者阅读. 书中第二部分内容或可为有兴趣进一步探索演化学习理
为了帮助有一定编程基础的人群进一步提升自己的Python编程水平及应对编程工作的压力,《算法实例精讲 Python语言实现》全面讲解了9种经典算法理论、65个典型实例的算法设计与分析以及Python语言的代码实现过程。首先从Python数据结构基础入手,然后讲解了各种算法,包括排序算法、动态规划算法、双指针算法、深度优先搜索算法、广度优先搜索算法、贪心算法、递归算法、分治算法、回溯算法等,*后归纳了数据结构中的一些经典问题。这既能帮助初学者理清算法的基本结构,融会贯通地掌握好算法基础知识;又能帮助有一定工作经验的读者巩固基础,进一步提升编程水平;也能帮助求职者为未来面试与工作做好必要的知识储备。 《算法实例精讲 Python语言实现》理论基础与实例应用相结合,实例分析与图解相结合,每个实例均设有详细的思路解析和代码实现,
本书撷取生活中的趣闻逸事,将它们抽象成一个一个算法,寓教于乐,阐述了主流算法背后的来龙去脉,包括贪心算法、排序算法、RSA 算法、递归、分治、动态规划等经典内容。本书适合任何对算法有好奇心的人群阅读。
本书是一本解谜式的趣味算法书,从实际应用出发,通过趣味谜题的解谜过程,引导读者在愉悦中提升思维能力、掌握算法精髓。此外,本书作者在谜题解答上,通过算法的关键原理讲解,从思维细节入手,发掘启发性算法新解,并辅以Ruby、JavaScript等不同语言编写的源代码示例,使读者在算法思维与编程实践的分合之间,切实提高编程能力。 本书适合已经学习过排序、搜索等算法,并想要学习更多有趣算法以提升编程技巧、拓展程序设计思路的程序员,以及对挑战算法问题感兴趣、爱好解谜的程序员阅读。
本书内容包括经典的算法设计技术,主要介绍数据结构和标准模板库、递归与分治策略、动态规划、贪心算法、回溯算法、分支限界算法、图的搜索算法、图论、数论和组合数学问题。本书包括大量的问题实例,并在北京大学、浙江大学和杭州电子科技大学在线题库中精选原题,详细地分析解题的方法,深入浅出地讲解用到的算法,章后的上机练习题也选自在线题库中的典型题目,供读者练习,以巩固所学算法。本书内容基本上涵盖了目前大学生程序设计竞赛所要掌握的算法。 本书结构清晰、内容丰富,适合作为计算机科学与技术、软件工程以及相关学科算法课程的教材或参考书,特别适合有志于参加信息学竞赛和ACM大学生程序设计竞赛的读者学习和训练。
本书收集了历年来国家统考和985、211等重点高校和研究院、所的350多套硕士研究生入学“(算法与)数据结构”考试试卷的2100多道试题。作者按照数据结构课程的知识点对这些题目进行分类。在回顾知识点的基础上,对每一类题目进行分析、归纳答题思路,并给出了参考答案。本书收录的题目具有典型性,充分理解这些题目有助于学生更好地掌握数据结构课程的核心内容,以及应用知识解决实际问题的方法。 本书可以作为高等院校计算机及相关专业学习数据结构课程的参考书,对于报考相关专业硕士研究生的考生也极具价值,同时也适用于讲授该课程的教师以及自修该课程的其他人员。
本书是以大学生程序设计竞赛为基础、面向已有C1 入门知识且想要进一步学习的读者编写的 C 进阶训练指南。全书分为回湖法、图、动态规划、 网格等部分。回湖法部分介绍单向搜索和双向搜索,给出高级搜索的技巧;图部分分为图遍历和图算法章节,先介绍图遍历的方法,再以小生成树问题、单源短路径问题、多源短路径问题、网络流问题中的经典算法为例,介绍了十余种算法的原理和相关应用;动态规划部分逐一介绍了集合型、区间型、图论型、概率型、非典型动态规划,并介绍了空间、时间上的优化技巧,以及相应的备忘、松弛技巧;网格部分作为独立的专题汇集了与网格相关的各种习题 本书适合有意参加大学生程序设计竞赛的本科生、研究生阅读,对有意参加信息学奥林匹克竞赛的中学生具有参考价值。
本书系统论述了基于MATLAB的微分方程求解方法,全面介绍了微分方程的解析求解与数值求解方法,包括微分方程的初值问题、延迟微分方程与分数阶微分方程问题,并介绍了基于框图的初值问题求解方法。此外,本书还介绍了微分方程边值问题与偏微分方程问题的数值求解方法。本书可以作为一般读者系统学习微分方程的教辅教材,从另一个角度认识微分方程。
《因果推理:基础与学习算法》从概率统计的角度入手,分析了因果推理的假设,揭示这些假设所暗示的因果推理和学习的目的。本书分别论述了两个变量和多变量情况下的因果模型、学习因果模型及其与机器学习的关系,讨论了因果推理隐藏变量有关的问题、时间系列的因果分析。 《因果推理:基础与学习算法》可作为高等院校人工智能和计算机科学等相关专业高年级本科生和硕士研究生的教材,也可供研究机器学习、因果推理的技术人员参考。