算法学习指南
George T. Heineman
徐波 译
出版时间:2022年09月
页数:222
“本书将会讲述计算机科学中的基本算法和数据结构,帮助读者编写更加高效的代码。如果读者正在寻找一份需要编程技巧的技术型工作,本书有可能帮助其在面试中表现优异。”
——Zvi Galil
佐治亚理工学院、计算机系荣誉主任

在编写代码时,每位软件专业人士都需要对算法有充分的理解。在这本实用性极强的著作中,作者对一些关键的算法进行了详实的描述,可以有效地提高用各种语言编写代码的质量。软件开发人员、测试人员和维护人员可以在本书中学会如何使用算法,以创造性的方式解决计算性问题。
本书各章内容前后衔接紧密,环环相扣,用醒目的图表有条不紊地展示了一些核心概念,并对书中介绍的每种算法的性能进行了分析。在每一章的最后,读者需要应用在该章所学习的知识,解决一个新颖的具有挑战性的问题,就像在参加技术面试。
在本书中,读者将会:
● 学习计算机科学和软件工程中非常重要且基本的算法;
● 学习高效解决问题的常用策略,包括分治法、动态规划等;
● 使用大O表示法对代码进行分析,评估它的时间复杂度;
● 在算法中使用现有的Python程序库和数据结构解决问题;
● 理解重要算法的主要步骤。
  1. 第1章 解决问题
  2. 学习目标
  3. 1.1 什么是算法?
  4. 1.2 在一个任意的列表中查找最大值
  5. 1.3 对关键操作进行计数
  6. 1.4 可以预测算法性能的模型
  7. 1.5 在一个随机列表中查找两个最大值
  8. 1.6 锦标赛算法
  9. 1.7 时间复杂度和空间复杂度
  10. 1.8 总结
  11. 1.9 挑战练习
  12. 第2章 分析算法
  13. 学习目标
  14. 2.1 使用实验模型预测性能
  15. 2.2 乘法可以更快
  16. 2.3 性能分类
  17. 2.4 渐进性分析
  18. 2.5 对所有操作进行计数
  19. 2.6 对所有字节进行计数
  20. 2.7 关上一扇门,打开另一扇门
  21. 2.8 二分数组搜索
  22. 2.9 几乎和π一样简单
  23. 2.10 一石二鸟
  24. 2.11 综述
  25. 2.12 曲线拟合与上下界的比较
  26. 2.13 总结
  27. 2.14 挑战练习
  28. 第3章 更好的散列,更适意的人生
  29. 学习目标
  30. 3.1 值与键相关联
  31. 3.2 散列函数和散列码
  32. 3.3 (key,value)对的可散列结构
  33. 3.4 使用线性探查法检测和解决冲突
  34. 3.5 用链表实现分离链表
  35. 3.6 从链表中删除一个数据项
  36. 3.7 评估
  37. 3.8 增长的散列表
  38. 3.9 分析动态散列表的性能
  39. 3.10 完美散列
  40. 3.11 对(key, value)对进行迭代
  41. 3.12 总结
  42. 3.13 挑战练习
  43. 第4章 堆起来!
  44. 学习目标
  45. 4.1 最大二叉堆
  46. 4.2 插入(value, priority)对
  47. 4.3 删除具有最高优先级的值
  48. 4.4 用数组表示二叉堆
  49. 4.5 实现上游和下沉
  50. 4.6 总结
  51. 4.7 挑战练习
  52. 第5章 深入浅出论排序!
  53. 学习目标
  54. 5.1 交换排序
  55. 5.2 选择排序
  56. 5.3 平方时间级排序算法的剖析
  57. 5.4 分析插入排序和选择排序的性能
  58. 5.5 递归和分治法
  59. 5.6 归并排序
  60. 5.7 快速排序
  61. 5.8 堆排序
  62. 5.9 O(NlogN)等级算法的性能比较
  63. 5.10 Tim排序
  64. 5.11 总结
  65. 5.12 挑战练习
  66. 第6章 二叉树:掌上世界的无限可能
  67. 学习目标
  68. 6.1 基础知识
  69. 6.2 二叉查找树
  70. 6.3 在二叉查找树中搜索值
  71. 6.4 从二叉查找树删除值
  72. 6.5 遍历二叉树
  73. 6.6 分析二叉查找树的性能
  74. 6.7 平衡二叉树
  75. 6.8 分析平衡二叉树的性能
  76. 6.9 使用二叉树作为(key,value)符号表
  77. 6.10 使用二叉树作为优先队列
  78. 6.11 总结
  79. 6.12 挑战练习
  80. 第7章 图:连得上的才是好的!
  81. 学习目标
  82. 7.1 图高效地存储了实用的信息
  83. 7.2 使用深度优先搜索解决迷宫问题
  84. 7.3 广度优先搜索提供了一种不同的搜索算法
  85. 7.4 有向图
  86. 7.5 具有边权重的图
  87. 7.6 迪杰斯特拉算法
  88. 7.7 全顶点对的最短路径
  89. 7.8 Floyd-Warshall算法
  90. 7.9 总结
  91. 7.10 挑战练习
  92. 第8章 综述
  93. 学习目标
  94. 8.1 Python的内置数据类型
  95. 8.2 在Python中实现堆栈
  96. 8.3 在Python中实现队列
  97. 8.4 堆和优先队列的实现
  98. 8.5 进一步的探索
书名:算法学习指南
作者:George T. Heineman
译者:徐波 译
国内出版社:人民邮电出版社
出版时间:2022年09月
页数:222
书号:978-7-115-59244-6
原版书书名:Learning Algorithms
原版书出版商:O'Reilly Media
George T. Heineman
 
George T. Heineman是一位计算机科学系的教授,在软件工程和算法领域有超过20年的教学经验。他是《算法技术手册》(第2版)的作者,也是很多O’Reily视频培训课程的讲师。
George T. Heineman is an associate professor of computer science at Worcester Polytechnic Institute. His research interests are in software engineering. He coedited the 2001 book Component-Based Software Engineering: Putting the Pieces Together (Addison-Wesley). George was the program chair for the 2005 International Symposium on Component-Based Software Engineering.
 
 
购买选项
定价:79.80元
书号:978-7-115-59244-6
出版社:人民邮电出版社