全部商品分类

您现在的位置: 全部商品分类 > 电子电脑 > 计算机技术 > 计算机原理与基础

漫画算法(2小灰的算法进阶)

  • 定价: ¥88
  • ISBN:9787121411311
  • 开 本:16开 平装
  •  
  • 折扣:
  • 出版社:电子工业
  • 页数:238页
我要买:
点击放图片

导语

  

    这本书通过漫画的形式,讲述了小灰学习算法和数据结构知识的心路历程。书中许多内容源于本人的微信公众号,但是比公众号的内容更加系统,更加全面,也更加严谨。
    本书是基于前作《漫画算法》的续作。完全没有相关基础的小伙伴可以先看看《漫画算法》这本书,从而对算法和数据结构有一个基本的认识。
    有一定基础的小伙伴可以从这本《漫画算法2》当中学到更多的算法,比如希尔排序算法、KMP算法,也可以学到更丰富的数据结构,比如红黑树、跳表,还可以了解更多的算法面试题目,比如螺旋遍历二维数组、股票最大收益问题等。
    这不是一本编程入门书。对于在编程方面完全零基础的读者,建议先了解一些Java语言的基础。不过,算法思想是相通的,如果你掌握的是其他编程语言,也不难看懂其中的算法和数据结构知识。

内容提要

  

    本书是《漫画算法:小灰的算法之旅》的续作,通过主人公小灰的心路历程,用漫画的形式讲述了多个数据结构、算法及复杂多变的算法面试题目。
    第1章介绍了几种典型的排序算法,包括选择排序、插入排序、希尔排序、归并排序、基数排序。
    第2章介绍了“树”结构的高级应用,包括二叉查找树、AVL树、红黑树、B树和B+树。
    第3章介绍了“图”结构的概念,以及深度优先遍历、广度遍历、单源最短路径、多源最短路径算法。
    第4章介绍了“查找”相关的算法和数据结构,包括二分查找算法、RK算法,KMP算法,以及“跳表”这种用于高效查找的数据结构。
    第5章介绍了多种职场上流行的算法面试题目及详细的解题思路。例如螺旋遍历二维数组、寻找数组中第k大元素、求股票交易的最大收益等等。

作者简介

    魏梦舒(@程序员小灰),微信公众号“程序员小灰”的作者,具有多年软件行业从业经验,先后在京东金融、摩拜科技从事研发工作,对算法有一定的兴趣和经验。

目录

第1章  排序算法进阶
  1.1  新的开始
  1.2  什么是选择排序
    1.2.1  如何减少比较次数
    1.2.2  选择排序的实现
  1.3  什么是插入排序
    1.3.1  扑克牌中的排序算法
    1.3.2  插入排序的优化
  1.4  什么是希尔排序
    1.4.1  插入排序的升级
    1.4.2  希尔排序的优化
  1.5  什么是归并排序
    1.5.1  擂台上的排序算法
    1.5.2  归并排序的具体操作
  1.6  什么是基数排序
    1.6.1  另一种线性排序算法
    1.6.2  解决对齐问题
  1.7  小结
第2章  树的进阶
  2.1  什么是二叉查找树
    2.1.1  二叉树查找树的特性
    2.1.2  二叉查找树的插入和删除
    2.1.3  二叉查找树的缺陷
  2.2  什么是平衡二叉树
    2.2.1  平衡因子和旋转
    2.2.2  平衡二叉树的插入和删除
  2.3  什么是红黑树
    2.3.1  另一种自平衡方式
    2.3.2  红黑树的插入
    2.3.3  红黑树的删除
    2.3.4  红黑树的实践和应用场景
  2.4  什么是B树和B+树
    2.4.1  数据库的索引
    2.4.2  什么是B树
    2.4.3  什么是B+树
  2.5  小结
第3章  图
  3.1  什么是图
    3.1.1  图的基本概念
    3.1.2  图的存储方式
  3.2  图的遍历
    3.2.1  深度优先和广度优先
    3.2.2  遍历的具体实现
  3.3  图的最短路径
    3.3.1  什么是迪杰斯特拉算法
    3.3.2  迪杰斯特拉算法的原理
    3.3.3  如何得到完整路径
  3.4  图的多源最短路径
  3.5  小结
第4章  查找算法
  4.1  引言
  4.2  什么是二分查找
    4.2.1  一个特殊的游戏
    4.2.2  二分查找的原理
  4.3  什么是跳表
    4.3.1  链表能做二分查找吗
    4.3.2  跳表的插入与删除
  4.4  什么是字符串匹配算法
    4.4.1  朴素的字符串匹配
    4.4.2  朴素字符串匹配的改进
  4.5  什么是KMP算法
    4.5.1  无谓的字符比较
    4.5.2  KMP算法的原理
  4.6  小结
第5章  面试中的算法
  5.1  踌躇满志的小灰
  5.2  如何螺旋遍历二维数组
    5.2.1  第一次交锋
    5.2.2  解题思路
  5.3  两数之和与三数之和
    5.3.1  再接再厉
    5.3.2  解题思路
    5.3.3  问题的扩展
  5.4  数组中的第k个最大元素
    5.4.1  一道数组相关的题目
    5.4.2  解题思路
  5.5  链表的倒数第k个节点
    5.5.1  一道链表相关的题目
    5.5.2  解题思路
  5.6  千变万化的股票交易问题
    5.6.1  如何获得最大收益
    5.6.2  解题思路
    5.6.3  题目变形:买卖次数不限
    5.6.4  题目再变形:2次买卖
    5.6.5  最后的胜利
  5.7  结束也是开始