- ISBN:9787111736189
- 装帧:平装-胶订
- 册数:暂无
- 重量:暂无
- 开本:16开
- 页数:362
- 出版时间:2023-10-01
- 条形码:9787111736189 ; 978-7-111-73618-9
本书特色
算法是编程的基石,开发的核心。本书包含55个二维码,300多分钟视频,100多个知识点,50多个示例,适合程序员、计算机专业相关师生,以及对算法感兴趣的读者。
内容简介
这是一本关于数据结构和算法的书,以Java为描述语言,介绍了计算机编程中常用的数据结构和算法。全书共13章,讲述了常见的数据结构、排序算法、位运算、树、递归、回溯算法、贪心算法、双指针和滑动窗口、BFS和DFS、前缀和、动态规划、并查集、其他经典算法等知识。本书内容丰富,实用性强,通过示例练习和问题分析等方式,详细讲解了与算法有关的知识点。本书附赠视频讲解二维码,以及源代码。本书适合程序员、计算机专业相关师生,以及对算法感兴趣的读者阅读。
目录
第1章 常见的数据结构/
1.1数组/
1.1.1滚动数组/
1.1.2差分数组/
1.1.3二维差分数组/
1.1.4树状数组/
1.2链表/
1.3队列/
1.4栈/
1.5散列表/
1.6树/
1.6.1二叉搜索树/
1.6.2AVL树/
1.6.3红黑树/
1.6.4字典树/
1.6.5哈夫曼树/
1.6.6线段树/
1.6.7笛卡儿树/
1.6.8其他树/
1.7堆/
1.8图/
1.8.1图的分类/
1.8.2图的表示方式/
1.8.3图的遍历/
1.8.4迪杰斯特拉(Dijkstra)算法/
1.8.5贝尔曼-福特(Bellman-Ford)算法/
1.8.6SPFA算法/
1.8.7弗洛伊德(Floyd)算法/
1.8.8普里姆(Prim)算法/
1.8.9克鲁斯卡尔(Kruskal)算法/
1.8.10博鲁夫卡(Boruvka)算法/
1.8.11拓扑排序/
1.9数据结构总结/
第2章 排序算法/
2.1冒泡排序/
2.2选择排序/
2.3插入排序/
2.4快速排序/
2.5归并排序/
2.6堆排序/
2.7桶排序/
2.8基数排序/
2.9希尔排序/
2.10计数排序/
2.11其他排序/
第3章 位运算/
3.1位运算的常见操作符/
3.2位运算的一些简单操作/
3.3示例练习/
3.3.1交换两个数字的值/
3.3.2只出现一次的数字/
3.3.3有限状态机/
3.3.4二进制中1的个数/
3.3.5总的比特位数/
3.3.6反转二进制/
3.3.72的幂/
3.3.84的幂/
3.3.9交替二进制数/
3.3.10数字范围的按位与/
3.3.11字符串长度的*大乘积/
3.3.12两整数之和/
3.3.13集合的所有子集/
第4章 算法秘籍树/
4.1二叉树的遍历方式/
4.1.1二叉树的DFS遍历/
4.1.2二叉树的Morris遍历/
4.1.3二叉树的BFS遍历/
4.1.4N叉树的遍历/
4.2二叉树层次遍历习题/
4.3二叉树的特性习题/
4.4二叉树的深度优先搜索习题/
4.5二叉树的构造/
4.6二叉树的公共祖先问题/
第5章 递归/
5.1递归的理解/
5.2示例练习/
5.2.1反转链表/
5.2.2检查是否是回文链表/
5.2.3删除链表的倒数第n个节点/
5.2.4生成括号/
5.2.5二叉树展开为链表/
5.2.6将二叉搜索树改为累加树/
第6章 回溯算法/
6.1回溯算法的使用/
6.2示例练习/
6.2.1解数独/
6.2.2n皇后/
6.2.3目标值的组合/
6.2.4组合/
6.2.5单词搜索/
6.3回溯算法的剪枝/
6.3.1有重复项数字的全排列/
6.3.2划分为k个相等的子集/
第7章 贪心算法/
7.1贪心算法存在的不足/
7.2示例练习/
7.2.1柠檬找零/
7.2.2分发饼干/
7.2.3分糖果问题/
7.2.4*小跳跃次数/
7.2.5无重叠区域/
第8章 双指针和滑动窗口/
8.1相向双指针/
8.1.1回文串/
8.1.2盛*多水的容器/
8.2同向双指针/
8.2.1移动所有的0到数组末尾/
8.2.2两个链表的**个公共节点/
8.3快慢双指针/
8.3.1判断链表中是否有环/
8.3.2找出链表的中间节点/
8.4滑动窗口/
8.5大小可变窗口/
8.5.1*长没有重复字符的子串/
8.5.2*小覆盖子串/
8.5.3长度*小的连续子数组/
8.6固定窗口/
8.6.1平均值*大的子数组/
8.6.2找到字符串中的异位词/
8.6.3子数组中的*大值/
8.7只增不减窗口/
8.7.1*大连续1的个数/
8.7.2替换后的*长重复字符/
8.7.3篮子里的水果/
第9章 BFS和DFS/
9.1BFS的使用模板/
9.2DFS的使用模板/
9.3示例练习/
9.3.1岛屿数量/
9.3.2被围绕的区域/
9.3.3岛屿的*大面积/
9.3.4腐烂的苹果/
9.3.5删除无效的括号/
9.3.6省份数量/
第10章 前缀和/
10.1一维前缀和/
10.2二维前缀和/
10.3示例练习/
10.3.1和为k的子数组/
10.3.2k个奇数的子数组/
10.3.3连续数组的长度/
10.3.4总和可被k整除的子数组/
10.3.5和为k的路径/
第11章 动态规划/
11.1动态规划讲解/
11.1.1兑换零钱(一)/
11.1.2国王与金矿/
11.1.3解题思路/
11.2背包问题/
11.2.101背包问题/
11.2.2完全背包问题/
11.2.3多重背包问题/
11.2.4状态压缩/
11.3组合与排列/
11.3.1兑换零钱(二)/
11.3.2加起来和为目标值的组合/
11.3.3单词拆分/
11.4背包练习/
11.4.1目标和(01背包)/
11.4.2平分子集(01背包)/
11.4.3*少的完全平方数(完全
背包)/
11.5其他练习/
11.5.1*长公共子串/
11.5.2*长公共子序列/
11.5.3网格中的不同路径/
11.5.4*大正方形/
11.5.5*长上升子序列/
第12章 并查集/
12.1并查集的使用/
12.2并查集优化/
12.3并查集路径压缩/
12.4按大小合并优化/
12.5按秩合并优化/
12.6示例练习/
12.6.1岛屿数量/
12.6.2被围绕的区域/
12.6.3省份数量/
12.6.4飞地的数量/
第13章 其他经典算法/
13.1KMP算法/
13.2马拉车算法/
13.3摩尔投票算法/
13.4埃氏筛法/
13.5两个数的*大公约数/
13.6算术表达式的运算/
13.6.1中缀表达式转换的括号法/
13.6.2中缀表达式转换的二叉树法/
13.6.3中缀表达式转前缀表达式/
13.6.4中缀表达式转后缀表达式/
13.6.5后缀表达式求值/
13.6.6前缀表达式求值/
13.7牛顿迭代法求平方根/
13.8Base64编码/
相关资料
推荐语
算法是编程的基石。本书以生动的案例,结合作者的丰富经验,诠释了算法学习的直观与趣味性,对任何对算法感兴趣的开发者都具有极高的参考价值。强烈推荐!
思否联合创始人兼CTO 祁宁
算法是学习开发的基础和核心。博哥关注算法讲解多年,笔耕不辍,深得51CTO网友爱戴。本书是他多年经验的结晶,文笔精准、图文并茂,让枯燥的算法生动有趣,是广大初学者全面学习和了解算法的极佳读物!
51CTO首席内容官 杨文飞
这是一本非常实用的算法学习书,书中使用大量插图详细介绍了常见的数据结构和算法,内容全面,代码中也有大量注释,容易理解,值得推荐。
开源中国创始人 红薯
作者简介
王一博,网名博哥,各大专业网站知名博主,具有10多年的开发经验,2017年开始做算法试题并在公众号发布试题讲解,经常游走在全球30多个算法网站之间,累计做题2000多道,对算法试题有自己独特的解题思路和技巧。
-
深度学习的数学
¥43.5¥69.0 -
全图解零基础word excel ppt 应用教程
¥12.0¥48.0 -
机器学习
¥59.4¥108.0 -
有限与无限的游戏:一个哲学家眼中的竞技世界
¥37.4¥68.0 -
智能硬件项目教程:基于ARDUINO(第2版)
¥31.9¥65.0 -
硅谷之火-人与计算机的未来
¥14.3¥39.8 -
元启发式算法与背包问题研究
¥38.2¥49.0 -
AI虚拟数字人:商业模式+形象创建+视频直播+案例应用
¥62.9¥89.8 -
UNIX环境高级编程(第3版)
¥164.9¥229.0 -
剪映AI
¥52.8¥88.0 -
深度学习高手笔记 卷2:经典应用
¥90.9¥129.8 -
纹样之美:中国传统经典纹样速查手册
¥76.3¥109.0 -
UG NX 12.0数控编程
¥22.1¥45.0 -
MATLAB计算机视觉与深度学习实战(第2版)
¥90.9¥128.0 -
界面交互设计理论研究
¥30.8¥56.0 -
微机组装与系统维护技术教程(第二版)
¥37.8¥43.0 -
明解C语言:实践篇
¥62.9¥89.8 -
Linux服务器架设实战(Linux典藏大系)
¥83.3¥119.0 -
Visual Basic 语言程序设计基础(第6版)
¥32.0¥45.0 -
贝叶斯推理与机器学习
¥139.3¥199.0