作品简介

本书内容包括算法初步、排序算法、查找、双指针问题、哈希算法、深度优先搜索算法、广度优先搜索算法、回溯算法、动态规划、贪心算法、分治算法、并查集、最短路径算法和数论算法等常见算法。每个算法都做了深入的讲解,同时通过实例介绍了如何应用这些算法。书中算法都以Python语言进行描述。本书的特色在于讲解知识点的同时,辅以大量生动的例子,以更好地帮助读者深刻理解算法的原理。读者可以通过本书快速了解并掌握这些算法。本书适合有Python语言基础,了解基本数据结构知识,渴望深入学习算法的读者阅读。

王硕,软件工程师、北京理工大学客座讲师,从事计算机教育多年,擅长Python、Java、C语言、数据结构和算法等,接触数千学生,对算法有独到见解。平行致力于企业级软件开发和计算机教育工作,具有索尼中国研究院、四大国有银行软件开发中心工作经历。

作品目录

  • 内容提要
  • 前言
  • 第1章 算法初步
  • 1.1 什么是算法
  • 1.2 时间复杂度
  • 1.3 空间复杂度
  • 1.4 算法的应用
  • 1.5 Python算法的优势
  • 1.6 小结
  • 1.7 习题
  • 第2章 排序算法
  • 2.1 初级排序算法
  • 2.2 高级排序算法
  • 2.3 小结
  • 2.4 习题
  • 第3章 查找
  • 3.1 顺序查找
  • 3.2 二分查找
  • 3.3 树
  • 3.4 二叉树
  • 3.5 二叉搜索树
  • 3.6 平衡二叉树
  • 3.7 小结
  • 3.8 习题
  • 第4章 双指针问题
  • 4.1 单链表
  • 4.2 双指针的应用
  • 4.3 小结
  • 4.4 习题
  • 第5章 哈希算法
  • 5.1 哈希算法的原理
  • 5.2 哈希函数
  • 5.3 解决冲突
  • 5.4 哈希算法的应用
  • 5.5 小结
  • 5.6 习题
  • 第6章 深度优先搜索算法
  • 6.1 搜索
  • 6.2 图上的深度优先搜索
  • 6.3 二叉树上的深度优先搜索
  • 6.4 小结
  • 6.5 习题
  • 第7章 广度优先搜索算法
  • 7.1 依旧是图的搜索
  • 7.2 队列中的存储方式
  • 7.3 经典例题讲解
  • 7.4 小结
  • 7.5 习题
  • 第8章 回溯算法
  • 8.1 回溯算法原理
  • 8.2 回溯算法的应用
  • 8.3 小结
  • 8.4 习题
  • 第9章 动态规划
  • 9.1 动态规划介绍
  • 9.2 矿工问题
  • 9.3 爬楼梯问题
  • 9.4 背包问题
  • 9.5 最长递增子序列问题
  • 9.6 小结
  • 9.7 习题
  • 第10章 贪心算法
  • 10.1 贪心算法介绍
  • 10.2 硬币找零问题
  • 10.3 活动安排问题
  • 10.4 哈夫曼编码
  • 10.5 小结
  • 10.6 习题
  • 第11章 分治算法
  • 11.1 分治算法原理
  • 11.2 分治算法应用
  • 11.3 小结
  • 11.4 习题
  • 第12章 并查集
  • 12.1 并查集介绍
  • 12.2 朋友圈
  • 12.3 图的子元素
  • 12.4 小结
  • 12.5 习题
  • 第13章 最短路径算法
  • 13.1 戴克斯特拉算法
  • 13.2 贝尔曼-福特算法
  • 13.3 弗洛伊德算法
  • 13.4 A*搜索算法
  • 13.5 小结
  • 13.6 习题
  • 第14章 数论算法
  • 14.1 欧几里得算法
  • 14.2 中国余数定理
  • 14.3 素性检验算法
  • 14.4 小结
  • 14.5 习题
展开全部