用python语言讲解数据结构与算法
写在前面的话:关于数据结构与算法讲解的书籍很多,但是用python语言去实现的不是很多,最近有幸看到一本这样的书籍,由Brad Miller and David Ranum编写的《Problem Solving with Algorithms and Data Structures Using Python》,地址为:http://interactivepython.org/runestone/static/pythonds/index.html是英文的,写的不错,里面代码的实现也很详细,很多有趣的例子,本篇只把本书目录翻译如下,以便大家有个整体的认识。
======正文开始======
用Python讲解数据结构与算法
(Problem Solving with Algorithms and Data Structures Using Python)
一、简介(Introduction)
1.学习目标(Objectives)
2.开始学习(Getting Started)
3.什么是计算机科学(What is Computer Science)
4.Python基本知识回顾(Review of Basic Python)
5.总结(Summary)
6.关键术语(Key Terms)
7.问题讨论(Discussion Questions)
8.习题练习(Programming Exercises)
二、算法分析(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)
(完)
文档信息
- 版权声明:自由转载-非商用-非衍生-保持署名(创意共享3.0许可证)
- 本文为原创文章,欢迎转载,后续本博客会不断更新,因此请保留该文档信息。
- 本文地址:http://www.cnblogs.com/wuguanglei/p/3776284.html
用python语言讲解数据结构与算法的更多相关文章
- [0x00 用Python讲解数据结构与算法] 概览
自从工作后就没什么时间更新博客了,最近抽空学了点Python,觉得Python真的是很强大呀.想来在大学中没有学好数据结构和算法,自己的意志力一直不够坚定,这次想好好看一本书,认真把基本的数据结构和算 ...
- 用Python实现的数据结构与算法:开篇
一.概述 用Python实现的数据结构与算法 涵盖了常用的数据结构与算法(全部由Python语言实现),是 Problem Solving with Algorithms and Data Struc ...
- 大数据技术之_16_Scala学习_13_Scala语言的数据结构和算法_Scala学习之旅收官之作
第十九章 Scala语言的数据结构和算法19.1 数据结构(算法)的介绍19.2 看几个实际编程中遇到的问题19.2.1 一个五子棋程序19.2.2 约瑟夫问题(丢手帕问题)19.2.3 其它常见算法 ...
- Python实现的数据结构与算法之队列详解
本文实例讲述了Python实现的数据结构与算法之队列.分享给大家供大家参考.具体分析如下: 一.概述 队列(Queue)是一种先进先出(FIFO)的线性数据结构,插入操作在队尾(rear)进行,删除操 ...
- [0x01 用Python讲解数据结构与算法] 关于数据结构和算法还有编程
忍耐和坚持虽是痛苦的事情,但却能渐渐地为你带来好处. ——奥维德 一.学习目标 · 回顾在计算机科学.编程和问题解决过程中的基本知识: · 理解“抽象”在问题解决过程中的重要作用: · 理解并实现抽象 ...
- python 下的数据结构与算法---1:让一切从无关开始
这段时间把<Data Structure and Algorithms with python>以及<Problem Solving with Algorithms and Dat ...
- python 下的数据结构与算法---8:哈希一下【dict与set的实现】
少年,不知道你好记不记得第三篇文章讲python内建数据结构的方法及其时间复杂度时里面关于dict与set的时间复杂度[为何访问元素为O(1)]原理我说后面讲吗?其实就是这篇文章讲啦. 目录: 一:H ...
- C语言- 基础数据结构和算法 - 09 栈的应用_中缀表达式转后缀表达式20220611
09 栈的应用_中缀表达式转后缀表达式20220611 听黑马程序员教程<基础数据结构和算法 (C版本)>, 照着老师所讲抄的, 视频地址https://www.bilibili.com/ ...
- C语言- 基础数据结构和算法 - 08 栈的应用_就近匹配20220611
听黑马程序员教程<基础数据结构和算法 (C版本)>, 照着老师所讲抄的, 视频地址https://www.bilibili.com/video/BV1vE411f7Jh?p=1 喜欢的朋友 ...
随机推荐
- sublime配置coffeeScript
node.js 全局模块所在目录 npm -g ls 1.安装 npm install -g coffee-script 2.sublime安装CoffeeScript sublime语法高亮插件 ...
- webrtc进阶-信令篇-之三:信令、stun、turn、ice
webRTC支持点对点通讯,但是webRTC仍然需要服务端: . 协调通讯过程中客户端之间需要交换元数据, 如一个客户端找到另一个客户端以及通知另一个客户端开始通讯. . 需要处理NAT(网 ...
- angular中ng-include失效的原因
使得angular的ng-include指令失效的原因有两个: 例如:在demo.html中的代码<div ng-include = "'demo1.html'">&l ...
- 16.iOS APP图标和启动画面尺寸
1. 桌面图标 (app icon) for iPhone6 plus(@3x) : 180 x 180 for iPhone 6/5s/5/4s/4(@2x) : 120 x 120 2. 系统搜索 ...
- Markdown示例
欢迎使用 Cmd Markdown 编辑阅读器 我们理解您需要更便捷更高效的工具记录思想,整理笔记.知识,并将其中承载的价值传播给他人,Cmd Markdown 是我们给出的答案 -- 我们为记录思想 ...
- 算法入门笔记------------Day4
1.WERTYU 输入一个错位后敲出的字符串,输出打字员本来想打出的字 #include<stdio.h> char *s="`1234567890-=QWERTYUIOP[]\ ...
- [UCSD白板题] Binary Search
Problem Introduction In this problem, you will implemented the binary search algorithm that allows s ...
- armv6, armv7, armv7s的区别
ARM是微处理器行业的一家知名企业,arm处理器以体积小和高性能的优势在嵌入式设备中广泛使用,几乎所有手机都是使用它的. armv6, armv7, armv7s是ARM CPU的不同指令集,原则上是 ...
- Linux 常用工具小结:(5) lftp工具使用
Linux 常用工具小结:(1) lftp工具使用. 这里会按照一些比较常用的功能列出,并举一个具体的例子逐一解释功能. 通常使用ftp过程是登陆ftp,浏览ftp内容,下载ftp文件,或者上传ftp ...
- iOS navigationcontroller pop 回到上一层视图 如何刷新
1.从视图A中navigation controller push到视图B,当视图B navigationcontroller pop回到视图A时,并不会调用A的viewDidLoad,但是会调用vi ...