标签分类 热门分类
当前位置:首页 > 程序设计电子书 > Python电子书网盘下载
Python数据结构与算法分析

Python数据结构与算法分析 完整第2版电子书

官方价: 62.5

更 新:

Python数据结构与算法分析 (pdf、epub、mobi、azw3)下载

下载地址:https://pan.baidu.com/s/1xqUamU6MMMtVGh8RKCXHJ

分享码:q6p6

给大家带来的一篇关于Python相关的电子书资源,介绍了关于Python、数据结构、算法分析方面的内容,本书是由人民邮电出版社出版,格式根据源资源分为PDF、epub、mobi、azw3其中一种或多种格式,资源大小10.4 MB,布拉德利·米勒编写,目前豆瓣、亚马逊、当当、京东等电子书综合评分为:8.6,更多相关的学习资源可以参阅 程序设计电子书Python电子书、等栏目。

Python数据结构与算法分析 第2版 PDF

若把撰写代码比成急行军打战,那麼要想独霸战场,不可以光靠手上的尖刀,还需深得古语。Python是一把尖刀,数据结构与优化算法则是古语。只能通读古语,才可以使尖刀无坚不摧。《Python数据结构与算法分析 第2版》是用Python叙述数据结构与优化算法的劈山之作,聚集了创作者很多年的项目经验。根据学习培训这书,你将把握数据结构与优化算法的基础观念,进而有自信心探寻一切编译程序难点的解决方案。 - 应用Python保持栈、序列、目录等抽象数据类型 - 把握大O记法和时间复杂度等定义 - 运用递归处理汉诺塔问题 - 保持常见的搜索算法和排序算法,并剖析特性 - 把握树与图在Python中的运用 书籍每章內容常有配套设施训练,协助你尽快把握所教內容; 对于Python新版本全新升级重做,全部的代码全是应用Python3.x写出; 将全部的数据结构源代码都放到一个Python包中,便捷用户在进行工作时应用; 有关配套设施資源请至图灵社区免费下载。
掌握数据结构与优化算法是明白了解电子信息科学的前提条件。伴随着Python日渐普遍的运用,Python程序猿必须保持与传统式的面向对象编程言语类似的数据结构与优化算法。这书是用Python叙述数据结构与优化算法的劈山之作,聚集了创作者很多年的项目经验,向用户明白解读在Python自然环境下,怎样根据一系列储存体制高效率地保持各种优化算法。根据这书,用户将深刻领会Python数据结构、递归、检索、排列、树与图的运用,这些。

目录

  • 第1章 导论 1
  • 1.1 本章目标 1
  • 1.2 入门 1
  • 1.3 何谓计算机科学 1
  • 1.3.1 何谓编程 3
  • 1.3.2 为何学习数据结构及抽象数据类型 4
  • 1.3.3 为何学习算法 4
  • 1.4 Python基础 5
  • 1.4.1 数据 5
  • 1.4.2 输入与输出 16
  • 1.4.3 控制结构 18
  • 1.4.4 异常处理 21
  • 1.4.5 定义函数 23
  • 1.4.6 Python面向对象编程:定义类 24
  • 1.5 小结 37
  • 1.6 关键术语 38
  • 1.7 讨论题 38
  • 1.8 编程练习 38
  • 第 2章 算法分析 40
  • 2.1 本章目标 0
  • 2.2 何谓算法分析 40
  • 2.2.1 大O记法 43
  • 2.2.2 异序词检测示例 46
  • 2.3 Python数据结构的性能 49
  • 2.3.1 列表 49
  • 2.3.2 字典 53
  • 2.4 小结 55
  • 2.5 关键术语 55
  • 2.6 讨论题 56
  • 2.7 编程练习 56
  • 第3章 基本数据结构 57
  • 3.1 本章目标 57
  • 3.2 何谓线性数据结构 57
  • 3.3 栈 58
  • 3.3.1 何谓栈 58
  • 3.3.2 栈抽象数据类型 59
  • 3.3.3 用Python实现栈 60
  • 3.3.4 匹配括号 62
  • 3.3.5 普通情况:匹配符号 64
  • 3.3.6 将十进制数转换成二进制数 65
  • 3.3.7 前序、中序和后序表达式 67
  • 3.4 队列 75
  • 3.4.1 何谓队列 75
  • 3.4.2 队列抽象数据类型 75
  • 3.4.3 用Python实现队列 76
  • 3.4.4 模拟:传土豆 77
  • 3.4.5 模拟:打印任务 79
  • 3.5 双端队列 84
  • 3.5.1 何谓双端队列 84
  • 3.5.2 双端队列抽象数据类型 84
  • 3.5.3 用Python实现双端队列 85
  • 3.5.4 回文检测器 86
  • 3.6 列表 88
  • 3.6.1 无序列表抽象数据类型 88
  • 3.6.2 实现无序列表:链表 89
  • 3.6.3 有序列表抽象数据类型 97
  • 3.6.4 实现有序列表 97
  • 3.7 小结 100
  • 3.8 关键术语 101
  • 3.9 讨论题 101
  • 3.10 编程练习 102
  • 第4章 递归 105
  • 4.1 本章目标 105
  • 4.2 何谓递归 105
  • 4.2.1 计算一列数之和 105
  • 4.2.2 递归三原则 107
  • 4.2.3 将整数转换成任意进制的字符串 108
  • 4.3 栈帧:实现递归 110
  • 4.4 递归可视化 111
  • 4.5 复杂的递归问题 116
  • 4.6 探索迷宫 118
  • 4.7 动态规划 123
  • 4.8 小结 128
  • 4.9 关键术语 129
  • 4.10 讨论题 129
  • 4.11 编程练习 129
  • 第5章 搜索和排序 131
  • 5.1 本章目标 131
  • 5.2 搜索 131
  • 5.2.1 顺序搜索 131
  • 5.2.2 二分搜索 134
  • 5.2.3 散列 136
  • 5.3 排序 145
  • 5.3.1 冒泡排序 145
  • 5.3.2 选择排序 147
  • 5.3.3 插入排序 149
  • 5.3.4 希尔排序 151
  • 5.3.5 归并排序 153
  • 5.3.6 快速排序 156
  • 5.4 小结 159
  • 5.5 关键术语 160
  • 5.6 讨论题 160
  • 5.7 编程练习 161
  • 第6章 树 163
  • 6.1 本章目标 163
  • 6.2 示例 163
  • 6.3 术语及定义 166
  • 6.4 实现 168
  • 6.4.1 列表之列表 168
  • 6.4.2 节点与引用 171
  • 6.5 二叉树的应用 173
  • 6.5.1 解析树 173
  • 6.5.2 树的遍历 179
  • 6.6 利用二叉堆实现优先级队列 182
  • 6.6.1 二叉堆的操作 182
  • 6.6.2 二叉堆的实现 183
  • 6.7 二叉搜索树 189
  • 6.7.1 搜索树的操作 190
  • 6.7.2 搜索树的实现 190
  • 6.7.3 搜索树的分析 201
  • 6.8 平衡二叉搜索树 202
  • 6.8.1 AVL树的性能 203
  • 6.8.2 AVL树的实现 204
  • 6.8.3 映射实现总结 210
  • 6.9 小结 211
  • 6.10 关键术语 211
  • 6.11 讨论题 211
  • 6.12 编程练习 213
  • 第7章 图及其算法 214
  • 7.1 本章目标 214
  • 7.2 术语及定义 215
  • 7.3 图的抽象数据类型 216
  • 7.3.1 邻接矩阵 216
  • 7.3.2 邻接表 217
  • 7.3.3 实现 218
  • 7.4 宽度优先搜索 220
  • 7.4.1 词梯问题 220
  • 7.4.2 构建词梯图 221
  • 7.4.3 实现宽度优先搜索 223
  • 7.4.4 分析宽度优先搜索 226
  • 7.5 深度优先搜索 226
  • 7.5.1 骑士周游问题 226
  • 7.5.2 构建骑士周游图 227
  • 7.5.3 实现骑士周游 229
  • 7.5.4 分析骑士周游 231
  • 7.5.5 通用深度优先搜索 233
  • 7.5.6 分析深度优先搜索 236
  • 7.6 拓扑排序 236
  • 7.7 强连通单元 238
  • 7.8 最短路径问题 241
  • 7.8.1 Dijkstra算法 243
  • 7.8.2 分析Dijkstra算法 245
  • 7.8.3 Prim算法 245
  • 7.9 小结 248
  • 7.10 关键术语 249
  • 7.11 讨论题 249
  • 7.12 编程练习 250
  • 第8章 附加内容 251
  • 8.1 本章目标 251
  • 8.2 复习Python列表 251
  • 8.3 复习递归 256
  • 8.3.1 同余定理 257
  • 8.3.2 幂剩余 257
  • 8.3.3 最大公因数与逆元 258
  • 8.3.4 RSA算法 261
  • 8.4 复习字典:跳表 264
  • 8.4.1 映射抽象数据类型 265
  • 8.4.2 用Python实现字典 265
  • 8.5 复习树:量化图片 274
  • 8.5.1 数字图像概述 274
  • 8.5.2 量化图片 275
  • 8.5.3 使用八叉树改进量化算法 277
  • 8.6 复习图:模式匹配 284
  • 8.6.1 生物学字符串 285
  • 8.6.2 简单比较 285
  • 8.6.3 使用图:DFA 287
  • 8.6.4 使用图:KMP 288
  • 8.7 小结 291
  • 8.8 关键术语 291
  • 8.9 讨论题 291
  • 8.10 编程练习 292
  • 附录A Python图形包 293
  • 附录B Python资源 294
  • 参考资料295

上一篇:数据结构与算法图解  下一篇:Spark编程基础:Scala版

展开 +

收起 -

Python 相关电子书
Python 学习笔记
网友NO.364413

python算法与数据结构之冒泡排序实例详解

一、冒泡排序介绍 冒泡排序(英语:Bubble Sort)是一种简单的排序算法。它重复地遍历要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。遍历数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。这个算法的名字由来是因为越小的元素会经由交换慢慢“浮”到数列的顶端。 二、冒泡排序原理 比较相邻的元素。如果第一个比第二个大,就交换他们两个。 对每一对相邻元素做同样的工作,从开始第一对到结尾的最后一对。这一步做完,最后的元素应该会是最大的数。 针对所有的元素重复以上的步骤,除了最后一个。 持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较。 三、冒泡排序图解 四、冒泡排序总结 有N个数据需要比较N-1趟 每趟比较N-i次,i表示第几趟,例如7个数据,第四趟需要比较 7-4 = 3次 五、冒泡排序python代码实现 def bubble_sort(numlist): # 需要排列的数据个数 N = len(numlist) # i 控制一共需要多少趟 N-1 for i in range(N-1): # j 控制每趟需要比较多少次(因为i是从0开始,所以N-i-1) for j in range(N-i-1): # 判断j和j+1两个位置的数据大小 if numlist[j]numlist[j+1]: # 交换(交换的代码有很多种写法) temp = numlist[j] numlist[j] = numlist[j+1] numlist[j+1] = temp list = [19,2,13,8,34,……

网友NO.910626

Python实现基本线性数据结构

数组 数组的设计 数组设计之初是在形式上依赖内存分配而成的,所以必须在使用前预先请求空间。这使得数组有以下特性: 1、请求空间以后大小固定,不能再改变(数据溢出问题); 2、在内存中有空间连续性的表现,中间不会存在其他程序需要调用的数据,为此数组的专用内存空间; 3、在旧式编程语言中(如有中阶语言之称的C),程序不会对数组的操作做下界判断,也就有潜在的越界操作的风险(比如会把数据写在运行中程序需要调用的核心部分的内存上)。 因为简单数组强烈倚赖电脑硬件之内存,所以不适用于现代的程序设计。欲使用可变大小、硬件无关性的数据类型,Java等程序设计语言均提供了更高级的数据结构: ArrayList 、 Vector 等动态数组。 Python的数组 从严格意义上来说:Python里没有严格意义上的数组。 List 可以说是Python里的数组,下面这段代码是CPython的实现 List 的结构体: typedef struct { PyObject_VAR_HEAD /* Vector of pointers to list elements. list[0] is ob_item[0], etc. */ PyObject **ob_item; /* ob_item contains space for 'allocated' elements. The number * currently in use is ob_size. * Invariants: * 0 = ob_size = allocated * len(list) == ob_size * ob_item == NULL implies ob_size == allocated == 0 * list.sort() temporarily sets allocated to -1 to detect mutations. * * Items must normally not be NULL, e……

网友NO.315332

Python中基本的数据结构--列表

Python中最基本的数据结构。序列中的每个元素都分配一个数字 - 它的位置,或索引,第一个索引是0,第二个索引是1,依此类推 列表 1、定义列表,取出列表中的值 1 names = [] #定义空列表 2 names = ['a','b','c'] #定义一个非空列表 3 4 # 取出列表中的值 5 6 names = ['a','b','c'] 7 names[0] 8 'a' 9 names[1]10 'b'11 names[2]12 'c'13 names[-1]#倒着取最后一个值14 'c' 2、切片 1 names = ['a','b','c','d'] # 列表的下标值是从0开始取值的 2 names[1:3] #取1到3之间的元素,包括1,不包括3 3 ['b', 'c'] 4 names[1:-1] #取1到-1之间的元素,包括1,不包括-1 5 ['b', 'c'] 6 names[0:3] 7 ['a', 'b', 'c'] 8 names[:3] #从头开始取,0可以省略,效果等同于names[0:3] 9 ['a', 'b', 'c']10 names[3:] #想取到最后一个值,必须不能写-1,只能这么写11 ['d']12 names[0::2] #后面的2表示:每隔一个元素就取一个13 ['a', 'c']14 names[::2] #从头开始0可以省略,效果跟上一句一样15 ['a', 'c'] 切片小结: ①序列始终都是从左向右切片的,不能是从右向左 ① 列表切片时,起始位的元素是包括的,结束位的元素是不包括(又叫顾头不顾尾),最后一个位置表示步长(names[开始位:结束位:步长]) ②如果从0位置取值,0可以省略 ③想取最后一个值时,结束位不能是-1,因为结束位的元素不包括,所以只能留空 3、列表函数方法 函数: 方法:……

网友NO.293688

Python中数据结构与算法的应用(附示例)

本篇文章给大家带来的内容是关于Python中数据结构与算法的应用(附示例),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。 问题1 现在有一个包含 N 个元素的元组或者是序列,怎样将它里面的值解压后同时赋值给 N 个变量? 解决方案 任何的序列(可迭代对象)可以通过一个简单的赋值语句解压并赋值给多个变量。前提是变量的数量和序列元素的数量要一致。 In [3]: p = (4,5)In [4]: x,y = pIn [5]: xOut[5]: 4In [6]: yOut[6]: 5In [7]: data = ['ACME', 50, 91.1, (2012, 12, 21)]In [8]: name, shares, price, date = dataIn [9]: nameOut[9]: 'ACME'In [10]: sharesOut[10]: 50In [11]: dateOut[11]: (2012, 12, 21) 如果变量数量和序列元素数量不匹配,会产生一个异常。 In [12]: p = (x,5)In [13]: a,b,c = p---------------------------------------------------------------------------ValueError Traceback (most recent call last)ipython-input-13-f5a6e296606a in module()---- 1 a,b,c = pValueError: not enough values to unpack (expected 3, got 2) 这种解压赋值可以用在任何可迭代对象中,不仅仅是列表或者元组,还包括字符串,文件对象,迭代器和生成器。 In [14]: A = 'hello'In [15]: a,b,c,d,e = AIn [16]: aOut[16]: 'h'In [17]: bOut[17]: 'e'In [18]: cOut[18]: 'l'In [19]: dOut[19]: 'l'In [20]: eOut[20]: 'o'In [21]: a,b,c,d,eOut[21]: ('h', 'e', 'l', 'l', 'o') 对于只想解压序列其中一部分,丢弃……

码小辫

码小辫 发起

资源
22
粉丝
24
喜欢
415
评论
12

    Copyright 2018-2019 xz577.com 码农之家

    版权责任说明