展开全部

主编推荐语

一本关于数据结构和算法的书,以Java为描述语言,介绍了计算机编程中常用的数据结构和算法。

内容简介

全书共13章,讲述了常见的数据结构、排序算法、位运算、树、递归、回溯算法、贪心算法、双指针和滑动窗口、BFS和DFS、前缀和、动态规划、并查集、其他经典算法等知识。本书内容丰富,实用性强,通过示例练习和问题分析等方式,详细讲解了与算法有关的知识点。本书附赠视频讲解二维码,以及源代码。

本书适合程序员、计算机专业相关师生,以及对算法感兴趣的读者阅读。

目录

  • 版权信息
  • 内容提要
  • 前言
  • CHAPTER 1 第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.2 AVL树
  • 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.6 SPFA算法
  • 1.8.7 弗洛伊德(Floyd)算法
  • 1.8.8 普里姆(Prim)算法
  • 1.8.9 克鲁斯卡尔(Kruskal)算法
  • 1.8.10 博鲁夫卡(Boruvka)算法
  • 1.8.11 拓扑排序
  • 1.9 数据结构总结
  • CHAPTER 2 第2章 排序算法
  • 2.1 冒泡排序
  • 2.2 选择排序
  • 2.3 插入排序
  • 2.4 快速排序
  • 2.5 归并排序
  • 2.6 堆排序
  • 2.7 桶排序
  • 2.8 基数排序
  • 2.9 希尔排序
  • 2.10 计数排序
  • 2.11 其他排序
  • CHAPTER 3 第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.7 2的幂
  • 3.3.8 4的幂
  • 3.3.9 交替二进制数
  • 3.3.10 数字范围的按位与
  • 3.3.11 字符串长度的最大乘积
  • 3.3.12 两整数之和
  • 3.3.13 集合的所有子集
  • CHAPTER 4 第4章 树
  • 4.1 二叉树的遍历方式
  • 4.1.1 二叉树的DFS遍历
  • 4.1.2 二叉树的Morris遍历
  • 4.1.3 二叉树的BFS遍历
  • 4.1.4 N叉树的遍历
  • 4.2 二叉树层次遍历习题
  • 4.3 二叉树的特性习题
  • 4.4 二叉树的深度优先搜索习题
  • 4.5 二叉树的构造
  • 4.6 二叉树的公共祖先问题
  • CHAPTER 5 第5章 递归
  • 5.1 递归的理解
  • 5.2 示例练习
  • 5.2.1 反转链表
  • 5.2.2 检查是否是回文链表
  • 5.2.3 删除链表的倒数第n个节点
  • 5.2.4 生成括号
  • 5.2.5 二叉树展开为链表
  • 5.2.6 将二叉搜索树改为累加树
  • CHAPTER 6 第6章 回溯算法
  • 6.1 回溯算法的使用
  • 6.2 示例练习
  • 6.2.1 解数独
  • 6.2.2 n皇后
  • 6.2.3 目标值的组合
  • 6.2.4 组合
  • 6.2.5 单词搜索
  • 6.3 回溯算法的剪枝
  • 6.3.1 有重复项数字的全排列
  • 6.3.2 划分为k个相等的子集
  • CHAPTER 7 第7章 贪心算法
  • 7.1 贪心算法存在的不足
  • 7.2 示例练习
  • 7.2.1 柠檬找零
  • 7.2.2 分发饼干
  • 7.2.3 分糖果问题
  • 7.2.4 最小跳跃次数
  • 7.2.5 无重叠区域
  • CHAPTER 8 第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 篮子里的水果
  • CHAPTER 9 第9章 BFS和DFS
  • 9.1 BFS的使用模板
  • 9.2 DFS的使用模板
  • 9.3 示例练习
  • 9.3.1 岛屿数量
  • 9.3.2 被围绕的区域
  • 9.3.3 岛屿的最大面积
  • 9.3.4 腐烂的苹果
  • 9.3.5 删除无效的括号
  • 9.3.6 省份数量
  • CHAPTER 10 第10章 前缀和
  • 10.1 一维前缀和
  • 10.2 二维前缀和
  • 10.3 示例练习
  • 10.3.1 和为k的子数组
  • 10.3.2 k个奇数的子数组
  • 10.3.3 连续数组的长度
  • 10.3.4 总和可被k整除的子数组
  • 10.3.5 和为k的路径
  • CHAPTER 11 第11章 动态规划
  • 11.1 动态规划讲解
  • 11.1.1 兑换零钱(一)
  • 11.1.2 国王与金矿
  • 11.1.3 解题思路
  • 11.2 背包问题
  • 11.2.1 01背包问题
  • 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 最长上升子序列
  • CHAPTER 12 第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 飞地的数量
  • CHAPTER 13 第13章 其他经典算法
  • 13.1 KMP算法
  • 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.8 Base64编码
展开全部

评分及书评

评分不足
1个评分

出版方

机械工业出版社

机械工业出版社是全国优秀出版社,自1952年成立以来,坚持为科技、为教育服务,以向行业、向学校提供优质、权威的精神产品为宗旨,以“服务社会和人民群众需求,传播社会主义先进文化”为己任,产业结构不断完善,已由传统的图书出版向着图书、期刊、电子出版物、音像制品、电子商务一体化延伸,现已发展为多领域、多学科的大型综合性出版社,涉及机械、电工电子、汽车、计算机、经济管理、建筑、ELT、科普以及教材、教辅等领域。