problem-solving-with-algorithms-and-data-structure-using-python.pdf 中文版

4星(超过85%的资源)
所需积分/C币:48 2017-05-31 20:55:23 4.91MB PDF
224
收藏 收藏
举报

在很多网站上得知problem-solving-with-algorithms-and-data-structure-using-python是一本很好的书,此处只是中文版,英文版在:http://www.interactivepython.org/runestone/static/pythonds/index.html#。
Table of contents roblem- solving- with- algorithn-ad-dat- structure-uIsing-python中文版 0 1.介绍 1.1.日标 1.2快开始 1.2 1.3.什么是计算机科学 1.3 1.4什么是编程 14 1.5.为什么要学习数据结构和抽象数据类型 15 1.6.为什么要学习算法 1.6 1.7回顾 Python基础 1.7 2算法分析 2.1.目标 2.2什么是算法分析 2.2 2.3大O符号 2.3 24.一个回文字符串检查的例子 2.4 2.5 Python数据结构的性能 2.6.列表 2.6 2.7.字典 2.7 2.8.总结 28 3.其本数据结构 3.1.目标 3. 3.2什么是线性数据结构 3.2 33什么是栈 3.3 34栈的抽象数据类型 34 3.5 Python实现栈 3.5 36简单括号匹配 3.6 3.7.符号匹配 3.7 38.十进制转换成二进制 3.8 39中缀前缀和后缀表达式 3.9 3.10什么是队列 3.10 3.1.队列抽象数捱类型 3. 3.12Phon实现队列 3.2 3.13.模拟:烫手山芋 3.3 3.14模拟:打印机 3.|4 3.15什么是 Deque 3.15 3.16 Deque抽象数据类型 3.16 3.17 Python实现Dequ 3.17 3.18.回文检查 3.18 3.19.列表 3.19 3.20.无序列表抽象数据类型 3.20 3.21实现无序列表:链表 3.21 3.2.有序列表抽象数据结构 3.22 3.23实现有序列表 3.23 3.24总结 3.24 4递归 4 4.1.目标 4.1 42什么是递归 4.2 4.3计算整数列表和 4.3 4.4递归的三定律 4.4 4.5整数转换为任意进制字符串 4.5 4.6.栈帧:实现递归 4.6 47介绍:可视化递归 4.7 4.8.谢尔宾斯基三角形 4.8 4.10.河内塔游戏 4.9 4.1.探索迷宫 4.10 4.12.动态规划 4.13.总结 4.12 5.排序和搜索 5.1.日标 5.1 52搜索 52 53顺序查找 53 54.二分查找 54 5.5Hash查找 5.5 56排序 5.6 57.冒泡排序 5.7 5.8选择排序 58 59插入排序 9 5.10.sle序 5.10 5.11.归并排序 5.12.快速排序 5.12 5.13.总结 5.13 6树和树的算法 6 6.1.目标 6 6,2树的例子 6.2 6.3词汇和定义 6.3 64.列表表示 64 65节点表示 6.5 66.分析树 6.6 6.7树的遍历 6.7 6.8基于二叉堆的优先队列 6.8 69.二叉堆操作 69 6.10.二叉堆实现 6.10 6.1.二叉查找树 6.l1 6.12.查找树换作 6.12 6.13.查找树实现 6.13 6.14查找树分析 6.14 6.5.平衡二叉搜索树 6.15 6.16AⅥL平衡二叉搜索树 6.16 6.17AVL平衡二叉搜索树实现 6.17 618Map抽象数据结构总结 6.18 6.19总结 6.19 7.图和图的算法 7 7.1.目标 7.1 72词汇和定义 72 7.3图抽象数据类型 73 74.邻接矩阵 74 7.5邻接表 7.5 7.6.实现 76 77字梯的问题 7.7 7.8.构建宇梯图 7.8 79实现广度优先搜索 7.9 7.10.广度优先搜索分析 7.10 7.11.骑士之旅 7.12.构建骑士之旅图 712 7.13实现骑士之旅 7.13 7.14.骑士之旅分析 714 7.15通用深度优先搜索 715 7.16深度优先搜索分析 16 7.17.拓扑排序 7.l7 7.18强连通分量 7.l8 7.19最短路径问题 7.19 7.20.D)ksa算法 720 721D) astra算法分析 721 72Prim生成树算法 722 3.总结 Problem Solving with algorithms and data structures, Release 3.0 CONTENTS problem-solving-with-algorithms-and-data-structure-using-python Hx 版 目的 数据结构作为计算机从业人员的必备基础,Java,c之类的语言有很多这方面的书籍,Pton相对较少,其中比较著名的一本 problen- solving with-algorithm-and-data- structure-using-python,所以我在学习的过程中将其翻译了中文版,希望对大家有点帮助。 由」本人英诘能力不佳,本书部分翻译参考谷歌,但每句话郗经过个人哩解后调整修改,尽量侏证诘句韧通 由」翻译比较仓侹,难以避免有些排版错别字等问题,后续会润色。如你也有兴趣参与,可 pull request到gub仓库 默认大家有一定的 Python基础,故暂未翻译 Python语法的几个章节。后续考虑书的完整性会加上这几节。 本书未加上课后练习,如有兴趣,可上原书网站练习 地址 githubHfll:https://github.com/facert/python-data-structure-cnl giftbook在线浏览htps/ acert. ibooks. io/pythonr-data- structure-cn 联系作者 邯箱: shangri1992@163com ·博客:htps:/ facer:gthb.io 许可证 本作品采用知识共享署名-相同方式共亨40国际许可协议进行许可。传播此文档时请注意遵循以上许可协议。关于本许可证的更多详情可参 nghttp:/creativecommons.orglicenses/by-sa/4.0/ 11.目标 回顾计算机科学的思想,提高编程和解决问题的能力 理解抽象化以及它在解决问题过程屮发挥的作用 理解和实现抽象数据类型的慨念 回顾Prhn编程语言 1.2.快速开始 从第一台通过接入网线和交换机来传递人的指令的计算机开始,我们编程思考的方式发生了许多变化。与社会的许多方面一样,计算技术的变 化为计算机科学家提供了越来越多的工具和平台来实践他们的工艺。计算忛的快速发展诸如更快的处理器,高速网终和大的存储器容量已经让 计算杋科学家陷入高度复杂螺旋屮。在所有这些快速演变屮,一些基本原则保持不变。计算杋科学关注用计算忛来解决问题。 毫无疑问你花了相当多的时间学习解决问题约基础知识,以此希望有足够的能力把间题弄清楚并想岀解决方案。你还发现编写代码通常很困 难。问题的复杂性和解决方案的相应复杂性往往会掩盖与解决问题过程相关的基本思想 木章着重介绍了其他两个重要的部分。首先回顾了计算机科学与算法和研究数据结构所必纨适应的框架,特別是我们需要研究这些主题的原 因,以及如何理解这些主题有助于我们更好的解决问题。第二,我们回顾 Python编程语言。虽然我们不提供详尽的参考,我们将在其余章节中 给出基本数据结构的示例和解释 13.什么是计算机科学 计算机科学往往难以定义。这可能是由于在名称屮不幸使用了‘电脑”·词。正如你可能知道的,汁算枳科学不仅仅是计算机的研究。虽然计算 机作为一个工具在学科屮发挥重要的支持作用,但它们只是工具。 计算机科学是对问趑,解决问题以及解决问题过程中宀生的解决方案的研究。给定一个问题,计算杋科学家的目标是开发一个算法,一系列的 指令列表,用于解决可能出现的问题的任何实例。算法遵循它有限的过程就可以解决问题 ⅱ算杋科学可以被认为是对算法的研究。但是,我们必攽谨惧地包括一些事实,即一些问题可能没有解决方案。然证明这种说法正确性超岀 了木文的范围,但一些问题不能解决的事实对于那些硏究计算机科学的人是很重要的。所以我们可以这么定义计算杋科学,是研究能被解决的 问题的方案和不能被解决问题的科学。 通常我们会说这个问题是可计算的,当在描述问题和解决方案时。如果冇在一个算法解决这个问题,那么问题是可计算的。计算机科学的另一 个定义是说,计算机科学是研究那些可计算和不可计算的问题,研究是不是存在一种算法来解决它。你会注意到,“电脑一词根本没有出现。 解决方案是独立于机器而言的。 计算机科学,因为它涉及问题解决过程本身,也是抽象的研究。抽象使我们能够以分离所谓的逻辑和物理角度的方式来观察冋题和解决方案 基本思想跟我们常见的例子一样 假设你可能已经开车上学或上班。作为司机,汽车的用户。你为了让汽车载你到目的地,你会和汽车有些互动。进入汽车,插入钥匙,点火, 换挡,制动,加速和转向。从抽象的角度,我们可以说你所看到的是汽车的逻辑视角。你正在使用汽车设训师提供的功能,将你从一个地方运 输到另一个位置。这些功能有时也祓称为接口。 另一方面,修理汽车的技工有一个截然不冋的视角。他不仅知道如何开车,还必须知道所有必要的细节,使我们认为理所当然的功能运行起 来。他需要了解发动机是如何工作的,变速箱如何变速,温度是如何控訇的等等。这被称为物理视角,细节发生在引擎盖下¨。 当我们使用电脑时也会发生同样的情况。大多数人使用计算机写文档,发送和接收电子邮件,上网冲浪,播放音乐,存储图像和玩游戏,而不 知道让这些应用程序工作的细节。他们从逻辑或用户角度看计算机。计算机科学家,程序员,技术攴持人员和系统管理员看计算机的角度截然 不同、他们必须知道操作系统如何工作的细节,如何配置网络协议,以廴如何编写控制功能的各种脚本。他们必须能够控制底层的细节 这两个示例的共同点是用户态的抽象,有吋也称为客户端,不需要知道细节,只要用户知道接口的工作方式。这个接口是用户与底层沟通的方 式。作为抽象的另个例了, Python数学模块。旦我们导入模块,我们可以执行计算 >>>import math >>>math. sgrt(16) > 这是一个程序抽象的例子。我们不一定知道如何计算平方根,但我们知道函数是什么以及如何使用它。如果我们正确地执行导入,我们可以假 设该函数将为我们提供正确的结果ε我们知道有人实现了平方根问题的解决方案,但我们只需要知道如何使用它。这有时被称为“黑盒子视 图。我们简单地描述下接口:函数的名称,需要什么(参数),以及将返回什么。细节隐藏在里面(见图1) sarto square root of n (图1)

...展开详情
试读 127P problem-solving-with-algorithms-and-data-structure-using-python.pdf 中文版
立即下载
限时抽奖 低至0.43元/次
身份认证后 购VIP低至7折
一个资源只可评论一次,评论内容不能少于5个字
dd512 垃圾,没法看,积分要那么多
2019-06-26
回复
baidu_16241077 很清晰,有书签
2019-02-07
回复
phimor 不错错不错
2018-09-28
回复
您会向同学/朋友/同事推荐我们的CSDN下载吗?
谢谢参与!您的真实评价是我们改进的动力~
关注 私信
上传资源赚钱or赚积分
最新推荐
problem-solving-with-algorithms-and-data-structure-using-python.pdf 中文版 48积分/C币 立即下载
1/127
problem-solving-with-algorithms-and-data-structure-using-python.pdf 中文版第1页
problem-solving-with-algorithms-and-data-structure-using-python.pdf 中文版第2页
problem-solving-with-algorithms-and-data-structure-using-python.pdf 中文版第3页
problem-solving-with-algorithms-and-data-structure-using-python.pdf 中文版第4页
problem-solving-with-algorithms-and-data-structure-using-python.pdf 中文版第5页
problem-solving-with-algorithms-and-data-structure-using-python.pdf 中文版第6页
problem-solving-with-algorithms-and-data-structure-using-python.pdf 中文版第7页
problem-solving-with-algorithms-and-data-structure-using-python.pdf 中文版第8页
problem-solving-with-algorithms-and-data-structure-using-python.pdf 中文版第9页
problem-solving-with-algorithms-and-data-structure-using-python.pdf 中文版第10页
problem-solving-with-algorithms-and-data-structure-using-python.pdf 中文版第11页
problem-solving-with-algorithms-and-data-structure-using-python.pdf 中文版第12页
problem-solving-with-algorithms-and-data-structure-using-python.pdf 中文版第13页
problem-solving-with-algorithms-and-data-structure-using-python.pdf 中文版第14页
problem-solving-with-algorithms-and-data-structure-using-python.pdf 中文版第15页
problem-solving-with-algorithms-and-data-structure-using-python.pdf 中文版第16页
problem-solving-with-algorithms-and-data-structure-using-python.pdf 中文版第17页
problem-solving-with-algorithms-and-data-structure-using-python.pdf 中文版第18页
problem-solving-with-algorithms-and-data-structure-using-python.pdf 中文版第19页
problem-solving-with-algorithms-and-data-structure-using-python.pdf 中文版第20页

试读结束, 可继续阅读

48积分/C币 立即下载