自從工做後就沒什麼時間更新博客了,最近抽空學了點Python,以爲Python真的是很強大呀。想來在大學中沒有學好數據結構和算法,本身的意志力一直不夠堅決,此次想好好看一本書,認真把基本的數據結構和算法補一補。html
Python講數據結構和算法的書,我想說的是真的太少了!!普遍搜索,中文的圖書基本上沒有,卻是找到兩本外文的:python
Problem Solving with Algorithms and Data Structures (用Python講解數據結構與算法)算法
Python Algorithms: Mastering Basic Algorithms in the Python Language
感受這兩本書都不錯,第一本稍微基礎一點,因此先從第一本開始吧。spring
第一本好像找了好久沒有找到pdf下載的,因而本身動手把官網扒了下來:Problem Solving with Algorithms and Data Structures ,提取碼:i2yv。或者http://download.csdn.net/detail/csulennon/9290623編程
先列一下目錄吧,有個大體的印象:數據結構
1、簡介(Introduction)數據結構和算法
1. [0x01 用Python講解數據結構與算法] 關於數據結構和算法還有編程post
2. Python基本語法回顧性能
2、算法分析(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)
3、基本數據結構(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)
4、遞歸(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)
5、排序與檢索(Sorting and Searching)
1.學習目標(Objectives)
2.檢索(Searching)
3.各類排序算法(Sorting)
4.總結(Summary)
5.關鍵術語(Key Terms)
6.問題討論(Discussion Questions)
7.習題練習(Programming Exercises)
6、樹與樹相關的算法(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)
7、圖與圖相關的算法(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)
這個目錄偷了一下懶,引用了快跑的小烏龜的翻譯。
剩下的但願能堅持下來,把這本書看完。