展开全部

主编推荐语

像小说一样有趣的算法入门书。

内容简介

本书示例丰富,图文并茂,以让人容易理解的方式阐释了算法,旨在帮助程序员在日常项目中更好地发挥算法的能量。书中的前三章将帮助你打下基础,带你学习二分查找、大O表示法、两种基本的数据结构以及递归等。余下的篇幅将主要介绍应用广泛的算法,具体内容包括:面对具体问题时的解决技巧,比如,何时采用贪婪算法或动态规划;散列表的应用;图算法;Kzui近邻算法。

目录

  • 版权信息
  • 版权声明
  • 前言
  • 致谢
  • 关于本书
  • 路线图
  • 如何阅读本书
  • 读者对象
  • 代码约定和下载
  • 作者在线
  • 第1章 算法简介
  • 1.1 引言
  • 1.1.1 性能方面
  • 1.1.2 问题解决技巧
  • 1.2 二分查找
  • 1.2.1 更佳的查找方式
  • 1.2.2 运行时间
  • 1.3 大O表示法
  • 1.3.1 算法的运行时间以不同的速度增加
  • 1.3.2 理解不同的大O运行时间
  • 1.3.3 大O表示法指出了最糟情况下的运行时间
  • 1.3.4 一些常见的大O运行时间
  • 1.3.5 旅行商
  • 1.4 小结
  • 第2章 选择排序
  • 2.1 内存的工作原理
  • 2.2 数组和链表
  • 2.2.1 链表
  • 2.2.2 数组
  • 2.2.3 术语
  • 2.2.4 在中间插入
  • 2.2.5 删除
  • 2.3 选择排序
  • 示例代码
  • 2.4 小结
  • 第3章 递归
  • 3.1 递归
  • 3.2 基线条件和递归条件
  • 3.3 栈
  • 3.3.1 调用栈
  • 3.3.2 递归调用栈
  • 3.4 小结
  • 第4章 快速排序
  • 4.1 分而治之
  • 4.2 快速排序
  • 4.3 再谈大O表示法
  • 4.3.1 比较合并排序和快速排序
  • 4.3.2 平均情况和最糟情况
  • 4.4 小结
  • 第5章 散列表
  • 5.1 散列函数
  • 5.2 应用案例
  • 5.2.1 将散列表用于查找
  • 5.2.2 防止重复
  • 5.2.3 将散列表用作缓存
  • 5.2.4 小结
  • 5.3 冲突
  • 5.4 性能
  • 5.4.1 填装因子
  • 5.4.2 良好的散列函数
  • 5.5 小结
  • 第6章 广度优先搜索
  • 6.1 图简介
  • 6.2 图是什么
  • 6.3 广度优先搜索
  • 6.3.1 查找最短路径
  • 6.3.2 队列
  • 6.4 实现图
  • 6.5 实现算法
  • 运行时间
  • 6.6 小结
  • 第7章 狄克斯特拉算法
  • 7.1 使用狄克斯特拉算法
  • 7.2 术语
  • 7.3 换钢琴
  • 7.4 负权边
  • 7.5 实现
  • 7.6 小结
  • 第8章 贪婪算法
  • 8.1 教室调度问题
  • 8.2 背包问题
  • 8.3 集合覆盖问题
  • 近似算法
  • 8.4 NP完全问题
  • 8.4.1 旅行商问题详解
  • 8.4.2 如何识别NP完全问题
  • 8.5 小结
  • 第9章 动态规划
  • 9.1 背包问题
  • 9.1.1 简单算法
  • 9.1.2 动态规划
  • 9.2 背包问题FAQ
  • 9.2.1 再增加一件商品将如何呢
  • 9.2.2 行的排列顺序发生变化时结果将如何
  • 9.2.3 可以逐列而不是逐行填充网格吗
  • 9.2.4 增加一件更小的商品将如何呢
  • 9.2.5 可以偷商品的一部分吗
  • 9.2.6 旅游行程最优化
  • 9.2.7 处理相互依赖的情况
  • 9.2.8 计算最终的解时会涉及两个以上的子背包吗
  • 9.2.9 最优解可能导致背包没装满吗
  • 9.3 最长公共子串
  • 9.3.1 绘制网格
  • 9.3.2 填充网格
  • 9.3.3 揭晓答案
  • 9.3.4 最长公共子序列
  • 9.3.5 最长公共子序列之解决方案
  • 9.4 小结
  • 第10章 K最近邻算法
  • 10.1 橙子还是柚子
  • 10.2 创建推荐系统
  • 10.2.1 特征抽取
  • 10.2.2 回归
  • 10.2.3 挑选合适的特征
  • 10.3 机器学习简介
  • 10.3.1 OCR
  • 10.3.2 创建垃圾邮件过滤器
  • 10.3.3 预测股票市场
  • 10.4 小结
  • 第11章 接下来如何做
  • 11.1 树
  • 11.2 反向索引
  • 11.3 傅里叶变换
  • 11.4 并行算法
  • 11.5 MapReduce
  • 11.5.1 分布式算法为何很有用
  • 11.5.2 映射函数
  • 11.5.3 归并函数
  • 11.6 布隆过滤器和HyperLogLog
  • 11.6.1 布隆过滤器
  • 11.6.2 HyperLogLog
  • 11.7 SHA算法
  • 11.7.1 比较文件
  • 11.7.2 检查密码
  • 11.8 局部敏感的散列算法
  • 11.9 Diffie-Hellman密钥交换
  • 11.10 线性规划
  • 11.11 结语
  • 练习答案
  • 看完了
展开全部

评分及书评

4.5
55个评分
  • 用户头像
    给这本书评了
    5.0
    《算法图解》

    本书易于理解,没有大跨度的思维跳跃,每次引入新概念时,都立即进行诠释,或者指出将在什么地方进行诠释。核心概念都通过练习和反复诠释进行强化,以便你检验假设,跟上步伐。

      转发
      评论
      用户头像
      给这本书评了
      4.0
      计算机科学入门读物,非常通俗易懂,缺点是一些地方浅尝辄止

      之前在知识城邦提过了这本书,如果要我给我的高中学校(一所北京还可以的高中)上一门计算机科学的课程,我会选择的计算机语言是 Python,配套读物就是这本。


      原因很简单,这本书行文很轻松,一下子把排序算法链表数组等概念用一种 “水到渠成” 的方式组织出来,再加上很多插图比较卡通,大大降低了自己的心里接受门槛。
      说句题外话,我家孩子最近也开始 scratch 编程教育。这也是我为什么读这本书的原因 — 我渴望提升自己给小白(外行人 程序员里的麻瓜)讲解计算机如何运行,代码是什么,数据算法是怎么回事…… 这些不好回答的问题。
      我觉得还不错, 推荐给你吧。

        3
        1
        用户头像
        给这本书评了
        5.0

        我也是没想到竟然看完了一本算法书。而且很短就看完了,对算法一直望而生畏,这本书却能浅入浅出的讲明白。说浅入是因为讲的确实不深入,浅尝辄止,但并非没有意义。如果说算法是个大森林,这本书就是帮你推开大门,告诉你这里面有些什么,如果只是做到这一步,那百度百科也可以。难能可贵的是,他还给你了铲子、水壶,甚至种子,告诉你它们的简单使用方法,以至于让你相信,你真的能穿过森林,甚至还能创造点什么。

          转发
          评论
        • 查看全部20条书评

        出版方

        人民邮电出版社·图灵出品

        图灵社区成立于2005年6月,由人民邮电出版社投资控股,以策划出版高质量的科技书籍为核心业务,主要出版领域包括计算机、电子电气、数学统计、科普等,通过引进国际高水平的教材、专著,以及发掘国内优秀原创作品等途径,为目标读者提供一流的内容。