写在前面的话:关于数据结构与算法讲解的书籍很多,但是用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)

(完)

文档信息

用python语言讲解数据结构与算法的更多相关文章

  1. [0x00 用Python讲解数据结构与算法] 概览

    自从工作后就没什么时间更新博客了,最近抽空学了点Python,觉得Python真的是很强大呀.想来在大学中没有学好数据结构和算法,自己的意志力一直不够坚定,这次想好好看一本书,认真把基本的数据结构和算 ...

  2. 用Python实现的数据结构与算法:开篇

    一.概述 用Python实现的数据结构与算法 涵盖了常用的数据结构与算法(全部由Python语言实现),是 Problem Solving with Algorithms and Data Struc ...

  3. 大数据技术之_16_Scala学习_13_Scala语言的数据结构和算法_Scala学习之旅收官之作

    第十九章 Scala语言的数据结构和算法19.1 数据结构(算法)的介绍19.2 看几个实际编程中遇到的问题19.2.1 一个五子棋程序19.2.2 约瑟夫问题(丢手帕问题)19.2.3 其它常见算法 ...

  4. Python实现的数据结构与算法之队列详解

    本文实例讲述了Python实现的数据结构与算法之队列.分享给大家供大家参考.具体分析如下: 一.概述 队列(Queue)是一种先进先出(FIFO)的线性数据结构,插入操作在队尾(rear)进行,删除操 ...

  5. [0x01 用Python讲解数据结构与算法] 关于数据结构和算法还有编程

    忍耐和坚持虽是痛苦的事情,但却能渐渐地为你带来好处. ——奥维德 一.学习目标 · 回顾在计算机科学.编程和问题解决过程中的基本知识: · 理解“抽象”在问题解决过程中的重要作用: · 理解并实现抽象 ...

  6. python 下的数据结构与算法---1:让一切从无关开始

    这段时间把<Data Structure and Algorithms with python>以及<Problem Solving with  Algorithms and Dat ...

  7. python 下的数据结构与算法---8:哈希一下【dict与set的实现】

    少年,不知道你好记不记得第三篇文章讲python内建数据结构的方法及其时间复杂度时里面关于dict与set的时间复杂度[为何访问元素为O(1)]原理我说后面讲吗?其实就是这篇文章讲啦. 目录: 一:H ...

  8. C语言- 基础数据结构和算法 - 09 栈的应用_中缀表达式转后缀表达式20220611

    09 栈的应用_中缀表达式转后缀表达式20220611 听黑马程序员教程<基础数据结构和算法 (C版本)>, 照着老师所讲抄的, 视频地址https://www.bilibili.com/ ...

  9. C语言- 基础数据结构和算法 - 08 栈的应用_就近匹配20220611

    听黑马程序员教程<基础数据结构和算法 (C版本)>, 照着老师所讲抄的, 视频地址https://www.bilibili.com/video/BV1vE411f7Jh?p=1 喜欢的朋友 ...

随机推荐

  1. interactivePopGestureRecognizer属性

    苹果一直都在人机交互中尽力做到极致,在iOS7中,新增加了一个小小的功能,也就是这个api:self.navigationController.interactivePopGestureRecogni ...

  2. cassandra-replication_factor 和 consistency level

    参考 replication_factor 决定了数据会被写到多少个节点.为2表示要写到两个节点. consistency level决定客户端要等待多少个节点被写成功.为1表示只要第一个节点被写成功 ...

  3. echarts绘制甘特图

      在setoption之后添加这段代码: window.addEventListener('resize', function () { myChart.resize();   }); 图表就能随着 ...

  4. MySQL Create Table创建表

    表的创建命令需要: 表的名称 字段名称 定义每个字段(类型.长度等) 语法 下面是通用的SQL语法用来创建MySQL表: CREATE TABLE table_name (column_name co ...

  5. 如何辨别具体的一种SaaS是否安全?

    如何辨别具体的一种SaaS是否安全,需要把握以下几点: 1.传输协议加密 首先,要看SaaS产品提供使用的协议,是https://还是一般的http://,别小看这个s,这表明所有的数据在传输过程中都 ...

  6. 流媒体协议介绍(rtp/rtcp/rtsp/rtmp/mms/hls)

    RTP           参考文档 RFC3550/RFC3551 Real-time Transport Protocol)是用于Internet上针对多媒体数据流的一种传输层协议.RTP协议详细 ...

  7. configure: error: no acceptable C compiler found in $PAT 的解决方案

    configure: error: no acceptable C compiler found in $PATH See `config.log' for more details.你的机器里没有安 ...

  8. 用栈解决Largest Rectangle问题

    一问题描述 Given n non-negative integers representing the histogram's bar height where the width of each ...

  9. Excel里内嵌在线翻译

    本来寻思着继续写点系统运行日志跟踪技术的,但早晨哥家领导从单位打来电话,让帮助她的闺蜜搞一个excel翻译的问题,总部IT搞不定.我过去是用excel做了几年工作,却都是些数学计算,跟翻译也扯不上啊: ...

  10. C#交错数组

    交错数组本质上是一维数组只不过这个一维数组里的元素都是数组.因为该一维数组里面的元素可以是任何大小的数组所以定义时只能以这样的格式定义 ][]; 定义完后必须对该数组进行初始化后方可进行赋值等操作否则 ...