用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 喜欢的朋友 ...
随机推荐
- 韩服LOL
※◆☆★☆◆※欢迎使用韩服LOL辅助,如有疑问请联系作者QQ:82850696*2*测试版已停用*1*2014-8-27 14:05:59*哈密*E2873D0137C6D04F42E088AA46E ...
- android检测版本更新
原理就是从服务器获取版本号和本得apk的版本号对比更新: //检查更新 Activity activity = this; while(activity.getParent ...
- json数据测试接口
json数据测试接口:http://www.xiaoqiang.org/tools/JsonView/?1348068433
- Linux命令之awk数组使用范例
目录 取ifconfig bond0的IP地址 1 命令如下: 2 统计apache日志单IP访问请求数排名 2 第一种方法 2 第二种方法 2 统计域名访问量 3 ...
- jQuery - plugin 代码模型
1.扩展 jQuery 的全局函数,主要以 $.xxx() 的形式调用 (function($) { $.myFunction = function(array) { // code } })(jQu ...
- WPF Touch操作滚动条,Window弹跳
WPF,用ScrollViewer控件,触屏开发,当滑动到最后时会使整个窗体弹跳一下 原因是因为ScrollViewer触屏操作原生支持惯性,ScrollViewer中的内容滚动到边界是会自动触发Wi ...
- PostgreSQL和MYsql的对比
一.postgresql多进程,mysql多线程 二.postgresql和它配套的开源软件非常多,容易进行负载均衡 三.posgresql代码简介,mysql比较混乱 四.最重要的,postgres ...
- Android密码约束规则例子一
Android常用的一个密码规则 (一)密码必须是8至16位:(二)密码必须包含英文字母和数字:(三)密码不能包含4位连续相同的字符,如0000或AAAA:(四)密码不能包含4位连续递增或连续递减的数 ...
- ruby日记1
1.irb参数配置 ~/.irbrc IRB.conf[:PROMPT_MODE] = :SIMPLE #简化 irb 提示符,以及禁用一些烦人的自动缩进行为 IRB.conf[:AUTO_INDEN ...
- IOS绘制渐变背景色折线图的一种尝试
1.绘制折线图 上次在群里看到一个折线图划的很漂亮,自己想实现一个这样的 ,但是一直没什么头绪,不知道怎么做,就开始在网上查找划线,绘 制渐变色这一块的内容,用最笨的方式,自己尝试的写了一些,也没 有 ...