自从工作后就没什么时间更新博客了,最近抽空学了点Python,觉得Python真的是很强大呀。想来在大学中没有学好数据结构和算法,自己的意志力一直不够坚定,这次想好好看一本书,认真把基本的数据结构和算法补一补。
Python讲数据结构和算法的书,我想说的是真的太少了!!广泛搜索,中文的图书基本上没有,倒是找到两本外文的:
Problem Solving with Algorithms and Data Structures (用Python讲解数据结构与算法)
Python Algorithms: Mastering Basic Algorithms in the Python Language
感觉这两本书都不错,第一本稍微基础一点,所以先从第一本开始吧。
第一本好像找了很久没有找到pdf下载的,于是自己动手把官网扒了下来:Problem Solving with Algorithms and Data Structures ,提取码:i2yv。或者http://download.csdn.net/detail/csulennon/9290623
先列一下目录吧,有个大致的印象:
一、简介(Introduction)
1. [0x01 用Python讲解数据结构与算法] 关于数据结构和算法还有编程
2. Python基本语法回顾
二、算法分析(Analysis)
1.学习目标(Objectives)
2.什么是算法分析(What is Algorithm Analysis)
3.Python内置数据结构性能分析(Performance of Python Data Structures)
4.总结(Summary)
5.关键术语(Key Terms)
6.问题讨论(Discussion Questions)
7.习题练习(Programming Exercises)
三、基本数据结构(Basic Data Structures)
1.学习目标(Objectives)
2.什么是线性数据结构(What Are Linear Structures)
3.栈(Stacks)
4.队列(Queues)
5.双端队列(Deques)
6.列表(Lists)
7.总结(Summary)
8.关键术语(Key Terms)
9.问题讨论(Discussion Questions)
10.习题练习(Programming Exercises)
四、递归(Recursion)
1.学习目标(Objectives)
2.什么是递归(What is Recursion)
3.栈帧实现递归(Stack Frames:Implementing Recursion)
4.可视化递归(Visualizing Recursion)
5.复杂递归问题(Complex Recursive Problems)
6.迷宫问题(Exploring a Maze)
7.动态规划(Dynamic Programming)
8.总结(Summary)
9.关键术语(Key Terms)
10.问题讨论(Discussion Questions)
11.习题练习(Programming Exercises)
五、排序与检索(Sorting and Searching)
1.学习目标(Objectives)
2.检索(Searching)
3.各种排序算法(Sorting)
4.总结(Summary)
5.关键术语(Key Terms)
6.问题讨论(Discussion Questions)
7.习题练习(Programming Exercises)
六、树与树相关的算法(Trees and Tree Algorithms)
1.学习目标(Objectives)
2.树相关实例(Examples of Trees)
3.树相关术语与定义(Vocabulary and Definitions)
4.实现树结构(Implementation)
5.二叉树(Binary Tree Aplications)
6.堆与优先队列(Priority Queues with Binary Heaps)
7.二叉搜索树(Binary Search Trees)
8.平衡二叉搜索树(Balanced Binary Search Trees)
9.总结(Summary)
10.关键术语(Key Terms)
11.问题讨论(Discussion Questions)
12.习题练习(Programming Exercises)
七、图与图相关的算法(Graphs and Graph Algorithms)
1.学习目标(Objectives)
2.图相关术语与定义(Vocabulary and Definitions)
3.图抽象数据结构(The Graph Abstract Data Type)
4.广度优先搜索(Breadth First Search)
5.深度优先搜索(Depth First Search)
6.拓扑排序(Topological Sorting)
7.强连通分量(Strongly Connected Components)
8.最短路径问题(Shortest Path Problems)
9.总结(Summary)
10.关键术语(Key Terms)
11.问题讨论(Discussion Questions)
12.习题练习(Programming Exercises)
这个目录偷了一下懒,引用了快跑的小乌龟的翻译。
剩下的希望能坚持下来,把这本书看完。