新書推薦:
《
我们身边的小鸟朋友:手绘观鸟笔记
》
售價:NT$
356.0
《
拯救免疫失衡
》
售價:NT$
254.0
《
收尸人
》
售價:NT$
332.0
《
大模型应用开发:RAG入门与实战
》
售價:NT$
407.0
《
不挨饿快速瘦的减脂餐
》
售價:NT$
305.0
《
形而上学与存在论之间:费希特知识学研究(守望者)(德国古典哲学研究译丛)
》
售價:NT$
504.0
《
卫宫家今天的饭9 附画集特装版(含漫画1本+画集1本+卫宫士郎购物清单2张+特制相卡1张)
》
售價:NT$
602.0
《
化妆品学原理
》
售價:NT$
254.0
|
編輯推薦: |
@程序员吴师兄 @帅地 @程序员cxuan @哪吒编程
百万大V高口碑力荐
“庖丁解牛”式讲解算法知识、逻辑
给你一部“活”的算法书
|
內容簡介: |
本书力图以简洁明了的例子讲解笔试、面试中常涉及的数据结构与算法,包括以数组为代表的顺序存储结构及以链表为代表的链式存储结构,并依次介绍了栈、队列、树、图、Hash、几个经典的贪心算法,以及一些经典的排序及查找算法。算法的世界奇妙无穷,我们只看到了其中一丁点璀璨,万丈光芒的世界等我们一起探索和创造。 本书适用于学习数据结构和算法知识的人,希望学习如何解算法题或正在刷题的计算机行业从业者,可作为相关专业的辅导参考书。
|
關於作者: |
一个让算法更简单的奋斗者。硕士毕业,现就职于知名商业银行,负责重要核心系统的研发和管理工作。擅长讲解算法思路,拆解算法思路,以图文并茂、通俗易懂的算法内容获得了全网读者的一致好评。
|
目錄:
|
1线性存储结构——数组
1.1 数组简介 / 2
1.2 Java中的数组 / 4
1.3 旋转数组 / 13
2 链式存储结构
2.1 单链表 / 28
2.2 双向链表 / 36
2.3 循环链表 / 43
2.4 跳表 / 48
3栈
3.1 栈的定义 / 57
3.2 栈的顺序存储结构 / 58
3.3 栈的链式存储结构 / 60
4队列
4.1 队列简介 / 65
4.2 循环队列 / 72
4.3 优先级队列 / 81
5 树
5.1 树的基本概念 / 87
5.2 树的存储结构 / 88
5.3 二叉树 / 91
5.4 树的遍历 / 100
5.5 堆 / 105
5.6 二叉排序树 / 121
5.7 平衡二叉树 / 134
5.8 红黑树 / 155
5.9 B树 / 183
5.10 B 树 / 204
6 图
6.1 图简介 / 231
6.2 图的存储结构 / 239
6.3 图的遍历 / 246
6.4 Union-Find算法 / 265
7Hash
7.1 基本概念 / 282
7.2 缓解Hash碰撞的方案 / 284
7.3 Hash算法的应用 / 303
8贪心算法
8.1 贪心算法概述 / 305
8.2 Dijkstra算法 / 307
8.3 Kruskal算法 / 316
8.4 Prim算法 / 323
8.5 赫夫曼编码 / 334
9 排序及查找算法
9.1 排序基本概念 / 348
9.2 冒泡排序 / 350
9.3 插入排序 / 356
9.4 希尔排序 / 359
9.5 选择排序 / 363
9.6 稳定选择排序 / 367
9.7 归并排序 / 370
9.8 快速排序 / 378
9.9 计数排序 / 388
9.10 基数排序 / 395
9.11 堆排序 / 400
9.12 线性搜索 / 410
9.13 二分查找 / 412
|
內容試閱:
|
“数据结构为什么这么难?”的提问下获得上千个赞同、上万次收藏和好评,有很多人添加 我的个人微信仅为表示感谢,这些人中有从文章中获益的考研的人,有基于这些文章深入 了解相关知识并转行到互联网相关行业的人,有在校读书的学弟、学妹,有从事互联网行 业想跳槽的人。在这些朋友和张晶老师的鼓励下,我克服重重困难终于完成了本书,希望 您可以喜欢本书,通过阅读本书有所收获。
图书结构
Algorithms Data Structures = Programs.
——Niklaus Wirth(Pascal 语言的作者,1984 年图灵奖得主)
这句话可以说是计算机编程的本质。一方面,数据结构作为计算机科学教学计划的基础科目,各种数据结构相关测试都要求熟练地掌握常用的数据结构与算法;另一方面,数据结构与算法是计算机编程的“灵魂”,学习过程充满乐趣,总能让人收获满满。
本书力图以简洁明了的例子讲解笔试、面试中常见的数据结构与算法,包括线性存储结构——数组、链式存储结构、栈、队列、树、图、Hash、贪心算法、排序及查找算法。
第 1、2 章介绍了线性存储结构(数组)和链式存储结构(链表);第 3 章介绍了栈的相关应用;第 4 章讨论了队列的相关问题,包括普通队列、循环队列和优先级队列;第 5 章讨论了与树相关的基本数据结构,包括二叉树、堆、二叉排序树、平衡二叉树、红黑树、B 树及 B 树;第 6 章介绍了图相关的问题,包括图简介、图的存储结构、图的遍历,以
及Union-Find 算法;第 7 章着重介绍了 Hash 算法及其应用;第 8 章讨论了贪心算法的基本概念,以及 Dijkstra 算法、Kruskal 算法、Prim 算法和赫夫曼编码;第 9 章介绍了一些经典的排序及查找算法。全书图文并茂,干货满满,易于自学理解及温习巩固。
本书使用 Java 语言实现数据结构与算法,代码风格遵循标准的 Java 编程规范,有清晰的注释,并针对每个算法都结合图文进行了详尽的讲解,内容清晰直观,易于理解,这让
本书俨然成了一本“活着”的数据结构与算法书籍。
本书着重对算法执行过程进行介绍,对于大多数算法的时间复杂度和空间复杂度的分 析一笔带过,如需要了解详细推导过程,可参考严蔚敏老师编著的相关书籍。
本书在计算机专业数据结构课程的基础上,结合笔试和面试的考查重点,甄选了一些经典的数据结构和算法,并对其进行了讲解。
算法的世界奇妙无穷,我们只看到了其中一丁点儿璀璨,万丈光芒的世界等我们一起探索和创造。
测试用例
书中代码示例基于 Java 8 编写。本书不提供书中的源代码,建议大家根据自己的理解,选择自己熟悉的编程语言,在适当的编程环境中自行编写代码,只有这样,我们对于相关内容的理解和记忆才会更加深刻。
感谢的人
感谢张晶编辑在本书撰写过程中的耐心指导,以及她一直以来提供的帮助。
感谢所有花时间和精力阅读我的文章的朋友,以及提供建议的人,你们的意见和建议对于本书的撰写非常重要!谢谢!
献礼
谨以此书献给那些与数据结构和算法结缘的朋友。
景禹
|
|