新書推薦:
![KO!再见,焦虑症!](http://103.6.6.66/upload/mall/productImages/24/27/9787523106365.jpg)
《
KO!再见,焦虑症!
》
售價:HK$
57.3
![嘉靖帝:丹鼎青烟里的王朝乱象](http://103.6.6.66/upload/mall/productImages/24/26/9787547324448.jpg)
《
嘉靖帝:丹鼎青烟里的王朝乱象
》
售價:HK$
97.8
![甲骨文字趣释](http://103.6.6.66/upload/mall/productImages/24/28/9787229185947.jpg)
《
甲骨文字趣释
》
售價:HK$
66.7
![利润的暗影:资本主义全球扩张与环境变迁史(探秘历史深处的经济与生态交织)](http://103.6.6.66/upload/mall/productImages/24/27/9787308250030.jpg)
《
利润的暗影:资本主义全球扩张与环境变迁史(探秘历史深处的经济与生态交织)
》
售價:HK$
82.8
![唐长安城坊古今注](http://103.6.6.66/upload/mall/productImages/24/28/9787030783721.jpg)
《
唐长安城坊古今注
》
售價:HK$
112.7
![持家的人 : 女性劳动与能源变革](http://103.6.6.66/upload/mall/productImages/24/27/9787500881629.jpg)
《
持家的人 : 女性劳动与能源变革
》
售價:HK$
71.3
![教育心理学](http://103.6.6.66/upload/mall/productImages/24/27/9787521763645.jpg)
《
教育心理学
》
售價:HK$
182.9
![中亚古代史](http://103.6.6.69/upload/mall/productImages/y24/8/9787545220049.jpg)
《
中亚古代史
》
售價:HK$
102.4
|
編輯推薦: |
1. 各章自成体系,可以作为独立的学习单元(算法基础—经典算法思想—重要数据结构—常用算法),满足初学者从“菜鸟”到“达人”进阶的学习需求2. 包含44道经典算法真题,每道题均一题多解,深入剖析不同算法在性能方面的优劣3. 16段、近90分钟的视频讲解核心知识点+全部真题源代码下载
|
內容簡介: |
《Java算法从菜鸟到达人》以 Java语言为实现平台,全书分四个部分,用言简意赅的语言介绍了算法的基本概念、五种经典的算法思想、重要的数据结构以及实践中常用的几种算法。除第1章和第2章外,书中每章内容都包括了基本概念、实现方式、具体应用以及达人修炼真题。每一种算法思想中的真题都提供了相应的源代码,可供读者运行,从而达到理论与实践并重的目的。 《Java算法从菜鸟到达人》涉及算法基本分析、算法基本思想、具体应用及大量真题等实用知识,内容全面、条理清楚、语言通俗。本书对计算机及相关专业本科生及研究生的算法能力提升和就业将有所帮助;此外,计算机科学相关领域的工程师以及爱好者也可以将本书作为技术参考书籍,查找所需算法的相关内容并从中得到启示;当然,对计算机科学感兴趣的读者以及IT领域项目经理也可以阅读本书,从而开启算法世界的大门。
|
關於作者: |
刘志全,男,博士,暨南大学网络空间安全学院副研究员、硕士生导师,研究方向包括车联网安全、无人机安全、Web安全、信任与隐私、人工智能、区块链等;近年来共在IEEE TITS、IEEE TDSC、IEEE IOTJ、IEEE TVT等国内外权威期刊/会议发表SCI/EI论文40余篇,申请/授权/公告国家发明专利/国外发明专利/PCT专利40余项;主持国家自然科学基金、广东省自然科学基金、广州市自然科学基金等纵向项目;指导学生获得港澳台侨创业大赛一等奖、吴渔夫学术科技创新竞赛一等奖等。
|
目錄:
|
前言 第一部分 算法基础第1章 算法综述/2 1.1 算法在计算机系统中的作用/2 1.1.1 算法的定义/2 1.1.2 算法的地位/2 1.1.3 一个简单的算法/3 1.2 伪代码的约定/4第2章 算法分析/6 2.1 精确效率分析/6 2.2 渐进效率分析/8 2.2.1 渐进记号/9 2.2.2 渐进记号的应用/10 2.3 递归式求解/15第二部分 经典算法思想第3章 递归与分治法/18 3.1 递归的概念/18 3.2 分治法/22 3.3 分治法的应用/24 3.4 达人修炼真题/26第4章 动态规划算法/52 4.1 动态规划基础/52 4.1.1 动态规划基本思想/52 4.1.2 动态规划算法举例—最长公共子序列/52 4.2 动态规划算法分析/56 4.2.1 最优子结构/56 4.2.2 重叠子问题/57 4.3 动态规划算法的应用/57 4.3.1 0-1背包问题/57 4.3.2 石子归并/59 4.3.3 常用动态规划类问题/61 4.4 达人修炼真题/63第5章 贪心算法/83 5.1 贪心算法基础/83 5.1.1 贪心算法基本思想/83 5.1.2 贪心算法举例—装载问题/83 5.2 贪心算法的分析/84 5.3 贪心算法的应用/85 5.3.1 普通背包问题/85 5.3.2 活动安排问题/87 5.3.3 纪念品分组/89 5.4 达人修炼真题/92第6章 回溯法/96 6.1 回溯法基本概念与算法框架/96 6.1.1 基本思路/96 6.1.2 回溯法的实现/98 6.2 回溯法的应用/99 6.2.1 0-1背包问题/99 6.2.2 八皇后问题/101 6.2.3 一摞烙饼的排序/102 6.3 达人修炼真题/105第7章 分支界限法/109 7.1 分支界限法概念与算法框架/109 7.1.1 分支界限法基本思想/109 7.1.2 算法框架与分析/110 7.1.3 一个简单的例子(0-1背包问题)/112 7.2 分支界限法的应用/114 7.2.1 TSP问题/114 7.2.2 多段图的最短路径问题/117 7.2.3 任务分配问题/119 7.3 达人修炼真题/121第三部分 重要数据结构第8章 栈与队列/131 8.1 栈/131 8.2 队列/134 8.3 达人修炼真题/137第9章 链表/153 9.1 链表概述/153 9.2 链表的操作/154 9.3 达人修炼真题/157第10章 树与二叉树/165 10.1 树的概念与定义/165 10.1.1 基本概念/165 10.1.2 树的表示/166 10.2 二叉树/167 10.2.1 基本概念/167 10.2.2 二叉树的存储结构/168 10.2.3 遍历二叉树和线索二叉树/169 10.3 树、二叉树和森林之间的关系/173 10.4 达人修炼真题/178第11章 哈希表/184 11.1 哈希表概述/184 11.2 哈希表的应用/187 11.3 达人修炼真题/189第12章 并查集/202 12.1 并查集基本思想/202 12.1.1 并查集概念/203 12.1.2 并查集的实现/203 12.1.3 带权并查集/206 12.2 并查集的应用/209 12.2.1 食物链/209 12.2.2 Kruskal最小生成树算法/211 12.3 达人修炼真题/212第13章 位图/218 13.1 位图基本概念/218 13.2 位图法的应用/223 13.2.1 位运算常见应用/223 13.2.2 位图法在大数据处理中的应用/228 13.3 达人修炼真题/229第四部分 常用算法第14章 排序算法/235 14.1 插入排序/235 14.2 选择排序/240 14.3 交换排序/243 14.4 归并排序/248 14.5 桶排序/基数排序/249 14.6 达人修炼真题/252第15章 查找算法/257 15.1 基本概念/257 15.2 静态查找/258 15.3 动态查找/261 15.4 哈希查找/266 15.5 达人修炼真题/267第16章 字符串匹配算法/273 16.1 简单字符串匹配/273 16.2 KMP算法/274 16.3 BM算法/277 16.4 SUNDAY算法/278 16.5 达人修炼真题/278附 录/287
|
內容試閱:
|
随着大数据处理、人工智能等领域的发展和计算机性能的提升,无论在学术界还是产业界,计算机领域的前沿概念与技术都逐步深入到思维层面,数学在这其中发挥的作用越来越重要,越来越多的高深数学理论被运用于实际中,有效地解决了许多实际问题,例如分析几何、小波分析、数值计算等。这一切让人们逐步意识到计算机程序设计本质上依赖的就是数学知识和算法思想。在软件工程师动手编程完成某一任务之前,先要通过一系列的分析来确定解决该任务的方法。首先,分析待求解任务/问题,将其抽象为某种数学模型;然后确定求解该问题时的资源限制(包括时间资源、电力资源、存储资源、计算资源、容错成本等);最后在已知信息的基础上,选择已有的算法或提出新的算法,在满足资源限制的情况下解决问题。因此,可以说一个不懂算法的“菜鸟”程序员是无法独立、自主地解决具体工程问题的,也很难写出逻辑严密、简化的高质量代码。 一名优秀的计算机科学领域的工程师或科学家一定对经典算法思想有深入的理解并能够将这些算法灵活应用于解决实际问题的过程中。目前,很多顶尖IT公司都会考查应聘者的算法功底和逻辑思维能力,因为算法功底深厚的应聘者,往往可以使项目的设计模式格外优化,程序逻辑也更为严密清晰。IT公司的顶尖专家和“达人”都对算法有很深的造诣,而项目经理也必须具备超强的逻辑思维能力。 对于所有即将迈入职场的计算机科学相关领域的学生而言,应该都希望自己以后能够在职场中逐渐成长为所在细分领域的优秀人才,具备出色完成各类任务、解决各类问题的能力,算法可以说是解决这些问题的关键,而程序语言只是一个外壳。算法的功底与一个计算机科学工程师的水平上限关系密切。所以,如果你想从事计算机科学相关工作,那么就应当认真地培养自己的逻辑思维,从而提高算法功底。 《Java算法从菜鸟到达人》所有的作者及其团队均在计算机科学领域有着多年的算法学习经历和IT领域工作经验,对算法有着较为深入的开发与实践。本书是在所有作者(包括未出现在作者名单中的幕后奉献者)钻研算法的基础上,经过长期的应用总结后编写而成的,并用言简意赅的语言给出了这些算法问题的答案。 本书特色 当前,已出版的算法书籍不计其数,从经典的《算法导论》到针对具体细分领域(例如文本处理、神经网络等)相关算法的书籍,每一本都有自己的侧重点与特色。本书的特色主要体现在以下几方面。 1)强调算法基础,理论与应用并重。 2)包含大量实际应用中的算法真题。 3)本书以Java语言实现。虽然Java中没有指针的概念(只有引用),为了便于理解,书中很多地方还是使用了指针,可以认为其等价于引用。 读者对象 1)计算机领域程序员及工程师。 2)计算机科学相关领域本科生及研究生。 3)其他算法爱好者(对算法感兴趣的读者、产品经理等)。 我们的目标是将本书打造成广大IT从业者和程序开发人员学习和提升算法能力的高效学习材料,同时也可以作为科研院所及企业的工程师参考的一本技术性书籍,不论你是“菜鸟”还是“达人”,阅读本书都将受益匪浅,从而提升解决实际编程问题的能力。 本书内容 《Java算法从菜鸟到达人》共16章内容,分为以下四部分。 第一部分(算法基础:第1、2章):这一部分将引导读者理清算法在计算机系统中的作用以及伪代码的约定等,不仅给出了算法的定义,简单地介绍了算法的表达方式,同时引导读者思考算法的设计和分析问题,本书后面章节的内容都是建立在这些基础知识之上的。 第二部分(经典算法思想:第3~7章):算法设计有很多思想,但是归纳起来,其中有五种思想使用最为广泛,它们分别是递归与分治法、动态规划算法、贪心算法、回溯法与分支界限法。这一部分逐一介绍了这些经典算法思想的具体思路以及利用这些算法思想可以解决的具体问题。 第三部分(重要数据结构:第8~13章):谈到算法的时候,数据结构这个词大概率也不会缺席,它是所有计算机专业学生必修的一门课程。这一部分主要讲解了一些重要数据结构的相关知识以及应用范围。对于数据结构基础较好的读者,可以跳过本部分,并不会影响阅读本书其余章节。 第四部分(常用算法:第14~16章):这一部分重点介绍了日常学习或工作中最常用的一些算法,包括常用的排序算法、查找算法以及字符串匹配算法。这些算法并不复杂,但是都有着非常高的使用频率,掌握它们将快速提升读者算法应用和实践能力。 反馈沟通 欢迎读者朋友在阅读本书过程中给予反馈意见,以利于本书的进一步完善与提升。反馈意见请发送至电子邮箱yuancoder@foxmail.com,我们将尽快回复。 本书全体作者
|
|