新書推薦:
《
粤行丛录(岭南史料笔记丛刊)
》
售價:HK$
80.2
《
岁月待人归:徐悲鸿自述人生艺术
》
售價:HK$
61.4
《
女人的中国医疗史:汉唐之间的健康照顾与性别
》
售價:HK$
103.8
《
资治通鉴熊逸版:第四辑
》
售價:HK$
470.8
《
中国近现代名家精品——项维仁:工笔侍女作品精选
》
售價:HK$
66.1
《
宋瑞驻村日记(2012-2022)
》
售價:HK$
115.6
《
汗青堂丛书138·帝国的切口:近代中国口岸的冲突与交流(1832-1914)
》
售價:HK$
127.4
《
人世事,几完缺 —— 啊,晚明
》
售價:HK$
115.6
|
編輯推薦: |
一本书*重要的是系统地传播知识,读者可以基于系统的架构,快速学会想要的知识。《算法零基础一本通(Python版)》的作者写过不少计算机领域的著作,《算法零基础一本通(Python版)》沿袭了其著作的特色,程序实例丰富,书中案例代码与习题答案可扫描封底二维码获取。相信读者通过学习《算法零基础一本通(Python版)》内容,必定可以在*短时间内学会使用Python 精通算法应用。
|
內容簡介: |
《算法零基础一本通(Python版)》使用 Python 指导读者从零开始学习算法 :由基础数据结构开始,逐步解说信息安全算法,*后也讲解了人工智能入门领域的 KNN 和 K-means 算法。《算法零基础一本通(Python版)》包含约 120 个程序实例,使用约 600 张完整图例,深入讲解了 7 种数据结构和数十种算法,此外也针对国内外著名公司招聘程序员的算法考题做了讲解。《算法零基础一本通(Python版)》实用性强、案例丰富,适合有一定 Python 基础的读者使用,也可作为大中专院校及培训机构的参考教材。
|
關於作者: |
洪锦魁,中国台湾计算机专家,IT图书知名作者。其著作特色:所有程序语法会依特性分类,同时以实用的程序实例进行解说,让读者可以事半功倍地轻松掌握相关知识。
近年出版作品:
Python数据科学零基础一本通
Python入门很简单
Python王者归来
Python GUI设计:tkinter菜鸟编程
|
目錄:
|
目 录
第 1 章 算法基本概念
1-1 计算机的算法................................2
1-2 不好的算法与好的算法...................3
1-2-1 不好的算法 ....................................... 3
1-2-2 好的算法 ........................................... 7
1-3 程序执行的时间测量方法 :时间
复杂度.........................................8
1-3-1 基本概念 ........................................ 8
1-3-2 时间测量复杂度 ............................... 9
1-4 内存的使用 :空间复杂度..............12
1-4-1 基本概念 ......................................... 12
1-4-2 常见的空间复杂度计算 ................. 14
1-5 数据结构....................................16
1-6 习题..........................................16
第 2 章 数组
2-1 基本概念....................................20
2-2 使用索引存取数组内容.................20
2-3 新数据插入数组...........................20
2-3-1 假设当下有足够的连续内存
空间 ................................................ 21
2-3-2 假设当下没有足够的连续内存
空间 ................................................ 22
2-4 删除数组元素..............................22
2-5 思考数组的优缺点........................23
2-6 与数组有关的 Python 程序...........24
2-6-1 建立数组 ......................................... 25
2-6-2 存取数组内容 ................................. 25
2-6-3 将数据插入数组 ............................. 26
2-6-4 删除数组元素 ................................. 27
2-6-5 搜寻数组元素 ................................. 28
2-6-6 更新数组内容 ................................. 28
2-6-7 Numpy ............................................. 28
2-7 习题..........................................29
第 3 章 链表
3-1 链表数据形式与内存概念..............32
3-2 链表的数据读取...........................32
3-3 新数据插入链表...........................33
3-4 删除链表的节点元素....................34
3-5 循环链表 circle linked list..........34
3-6 双向链表....................................34
3-7 数组与链表基本操作的时间复杂度
比较..........................................34
3-8 与链表有关的 Python 程序...........35
3-8-1 建立链表 ......................................... 35
3-8-2 建立链表类别和遍历此链表 .......... 36
3-8-3 在链表第一个节点前插入一个
新的节点......................................... 37
3-8-4 在链表末端插入新的节点 .............. 39
3-8-5 在链表中间插入新的节点 .............. 40
3-8-6 在链表中删除指定内容的节点 ...... 42
3-8-7 建立循环链表 ................................. 43
3-8-8 双向链表 ......................................... 44
3-9 习题..........................................47
第 4 章 队列
4-1 数据插入 enqueue......................50
4-2 数据读取 dequeue......................51
4-3 使用列表模仿队列的操作..............51
4-4 与队列有关的 Python 模块...........53
4-5 习题..........................................54
第 5 章 栈
5-1 数据推入 push............................56
5-2 数据取出 pop..............................57
5-3 Python 中栈的应用......................58
5-3-1 使用列表 list 模拟栈操作 ............ 58
5-3-2 自行建立 stack 类别执行相关
操作 ................................................ 59
5-4 函数调用与栈运作?.......................61
5-5 递归调用与栈运作?.......................62
5-6 习题?.........................................66
第 6 章?二叉树
6-1 建立二叉树?................................68
6-2 删除二叉树的节点?.......................70
6-3 搜寻二叉树的数据?.......................72
6-4 更进一步认识二叉树?...................74
6-5 内存存储二叉树的方法?................75
6-6 Python 中二叉树的运用?..............77
6-6-1 使用数组建立二叉树 .....................77
6-6-2 链表方式建立二叉树的根节点 ......79
6-6-3 使用链表建立二叉树 .....................80
6-6-4 遍历二叉树使用中序 inorder
打印 ................................................80
6-6-5 遍历二叉树使用前序 preorder
打印 ................................................85
6-6-6 遍历二叉树使用后序 postorder
打印 ................................................89
6-6-7 二叉树节点的搜寻 .........................94
6-6-8 二叉树节点的删除 .........................96
6-6-9 二叉树的应用与工作效率 ..............98
6-7 习题?.........................................98
第 7 章?堆积树
7-1 建立堆积树?..............................102
7-2 插入数据到堆积树?.....................103
7-3 取出最小堆积树的值?.................105
7-4 最小堆积树与数组?.....................106
7-5 Python 内建堆积树模块 heapq?..107
7-5-1 建立二叉堆积树 heapify ...........107
7-5-2 推入元素到堆积 heappush ........ 108
7-5-3 从堆积取出和删除元素
heappop ..................................... 109
7-5-4 推入和取出 heappushpop .......... 110
7-5-5 传回最大或是最小的 n 个元素 .... 110
7-5-6 取出堆积的最小值和插入新元素 .111
7-5-7 堆积的元素是元组 tuple .............111
7-5-8 二叉堆积树排序的应用 ............... 112
7-6 Python 硬功夫 :自己建立
???堆积树?....................................113
7-6-1 自己建立堆积树 ........................... 113
7-6-2 自己建立方法取出堆积树的
最小值 .......................................... 114
7-6-3 插入节点 ....................................... 115
7-7 习题?.......................................115
第 8 章?哈希表
8-1 基本概念?.................................118
8-2 哈希表转成数组?........................119
8-2-1 哈希表写入 ................................... 119
8-2-2 哈希碰撞与链结法 ....................... 121
8-2-3 哈希碰撞与开放寻址法 ............... 122
8-3 搜寻哈希表?..............................122
8-4 哈希表的规模与扩充?.................124
8-5 好的哈希表与不好的哈希表?........125
8-6 哈希表效能分析?........................126
8-7 Python 程序应用?......................126
8-7-1 Python 建立哈希表 ....................... 127
8-7-2 建立电话号码簿 ........................... 127
8-7-3 避免数据重复 ............................... 128
8-8 认识哈希表模块 hashlib?............129
8-8-1 使用 md5 方法计算中文 英文
数据的哈希值 ............................... 130
8-8-2 计算文件的哈希值 ....................... 131
8-8-3 使用 sha1 方法计算哈希值 ....... 132
8-8-4 认识此平台可以使用的哈希
算法 .............................................. 132
8-8-5 认识跨平台可以使用的哈希
算法 .............................................. 133
8-9 习题?.......................................133
第 9 章?排序
9-1 排序的概念与应用?.....................136
9-2 泡沫排序法 bubble?sort?..........137
9-2-1 图解泡沫排序算法 .................... 137
9-2-2 Python 程序实例 ........................... 140
9-3 鸡尾酒排序 cocktail?sort?.........142
9-3-1 图解鸡尾酒排序算法 ................... 142
9-3-2 Python 程序实例 ........................... 144
9-4 选择排序 selection?sort?..........145
9-4-1 图解选择排序算法 ....................... 145
9-4-2 Python 程序实例 ........................... 147
9-4-3 选择排序的应用 ........................... 148
9-5 插入排序 insertion?sort?..........149
9-5-1 图解插入排序算法 ....................... 149
9-5-2 插入排序与玩扑克牌 ................... 151
9-5-3 Python 程序实例 ........................... 151
9-6 堆积树排序 heap?sort.............152
9-6-1 图解堆积树排序算法 ................... 152
9-6-2 Python 程序实例 ........................... 154
9-7 快速排序 quick?sort?...............157
9-7-1 图解快速排序算法 ....................... 157
9-7-2 Python 程序实例 ........................... 159
9-8 合并排序 merge?sort?.............159
9-8-1 图解合并排序算法 ....................... 159
9-8-2 Python 程序实例 ........................... 163
9-9 习题?.......................................164
第 10 章?数据搜寻
10-1 顺序搜寻法
sequential?search?..............168
10-1-1 图解顺序搜寻算法 ..................... 168
10-1-2 Python 程序实例 ......................... 168
10-2 二分搜寻法 binary?search?....169
10-2-1 图解二分搜寻法 ......................... 169
10-2-2 Python 程序实例 ......................... 170
10-3 搜寻最大值算法?......................171
10-4 习题?.....................................171
第 11 章?栈、回溯算法与迷宫
11-1 走迷宫与回溯算法?...................174
11-2 迷宫设计栈扮演的角色?............177
11-3 Python 程序走迷宫?.................177
11-4 习题?.....................................180
第 12 章?从递归看经典算法
12-1 斐波那契 Fibonacci 数列?......184
12-2 河内塔算法?............................185
12-2-1 了解河内塔问题 ......................... 185
12-2-2 手动实践河内塔问题 ................. 187
12-2-3 Python 程序实践河内塔问题 ..... 191
12-3 八皇后算法?............................193
12-3-1 了解八皇后的题目 ..................... 193
12-3-2 回溯算法与八皇后 ..................... 194
12-3-3 递归的解法 ................................. 196
12-4 分形与 VLSI 设计算法?.............197
12-4-1 算法基本概念 ............................. 197
12-4-2 Python 程序实例 ......................... 199
12-5 习题......................................200
第 13 章?图形理论
13-1 图形的基本概念?......................206
13-1-1 基本概念 ..................................... 206
13-1-2 生活实例的概念扩展 ................. 206
13-1-3 加权图形 weighted graph ......... 207
13-1-4 有向图形 directed graph ........... 208
13-1-5 有向无环图 directed acycle
graph .......................................... 209
13-1-6 拓扑排序 topological sort ......... 209
13-2 广度优先搜寻算法概念解说?......209
13-2-1 广度优先搜寻算法理论 ........... 209
13-2-2 生活实务解说 ............................. 212
13-2-3 最短路径 ..................................... 215
13-3 Python 实践广度优先搜寻算法?...215
13-3-1 好用的 collections 模块的
deque ........................................ 215
13-3-2 广度优先搜寻算法实例.............. 217
13-3-3 广度优先算法拜访所有节点 ...... 219
13-3-4 走迷宫 ......................................... 222
13-4 深度优先搜寻算法概念解说?......224
13-4-1 深度优先搜寻算法理论 ........... 224
13-4-2 深度优先搜寻算法实例 ............ 229
13-5 习题?.....................................231
第 14 章?图形理论之最短路径算法
14-1 戴克斯特拉 Dijkstras 算法?....234
14-1-1 最短路径与最快路径问题 .......... 234
14-1-2 戴克斯特拉算法 ......................... 234
14-1-3 Python 程序实例 ......................... 237
14-2 贝尔曼 - 福特 Bellman-Ford
????算法?.....................................238
14-3 A* 算法?.................................241
14-4 习题?.....................................244
第 15 章?贪婪算法
15-1 选课分析?...............................248
15-1-1 问题分析 .................................. 248
15-1-2 算法分析 ..................................... 249
15-1-3 Python 程序实例 ......................... 250
15-2 背包问题 :贪婪算法不是
最完美的结果?.........................251
15-2-1 问题分析 .................................. 251
15-2-2 算法分析 ..................................... 251
15-2-3 Python 实例 ................................ 251
15-3 电台选择?...............................253
15-3-1 问题分析 .................................. 253
15-3-2 算法分析 ..................................... 253
15-3-3 Python 实例 ................................ 258
15-4 业务员旅行?............................259
15-4-1 问题分析 ..................................... 259
15-4-2 算法分析 ..................................... 260
15-5 习题?.....................................266
第 16 章?动态规划算法
16-1 再谈背包问题 :动态规划算法?...270
16-1-1 简单同时正确的算法但是耗时 ... 270
16-1-2 动态规划算法 ............................. 272
16-1-3 动态算法延伸探讨 ..................... 275
16-1-4 存放顺序也不影响结果..............276
16-1-5 Python 程序实例 ......................... 276
16-2 旅游行程的安排?......................277
16-2-1 旅游行程概念 ........................... 277
16-2-2 Python 程序实例 ......................... 277
16-3 习题?.....................................278
第 17 章?数据加密到信息安全算法
17-1 数据安全与数据加密?................282
17-1-1 认识数据安全的专有名词 .......... 282
17-1-2 加密 ............................................. 283
17-2 摩斯密码 Morse?code?..........284
17-3 凯撒密码?...............................285
17-4 再谈文件加密技术?...................287
17-5 全天下只有你可以解的加密程序
???? 你也可能无法解 ?..................288
17-6 哈希函数与 SHA 家族?.............290
17-6-1 再谈哈希函数 ............................. 290
17-6-2 MD5Message-Digest
Algorithm ................................... 291
17-6-3 SHA 家族 ....................................292
17-7 密钥密码?...............................295
17-7-1 对称密钥密码 ............................. 295
17-7-2 公钥密码 ..................................... 297
17-8 讯息鉴别码 message
?????authentication?code?.............302
17-9 数字签名 digital?signature?....304
17-10 数字证书 digital?certificate?..306
17-11?习题?....................................309
第 18 章?人工智能破冰之旅 :KNN 和
K-means 算法
18-1 KNN 算法 : 电影分类?..............312
18-1-1 规划特征值 ................................. 312
18-1-2 将 KNN 算法应用在电影分类 ... 312
18-1-3 项目程序实例 ............................. 313
18-1-4 电影分类结论 ............................. 314
18-2 KNN 算法 :选举造势与销售
?????烤香肠?..................................314
18-2-1 规划特征值表 ............................. 314
18-2-2 回归方法 ..................................... 314
18-2-3 项目程序实例 ............................. 315
18-3 K-means 算法?......................316
18-3-1 算法基础 ..................................... 316
18-3-2 程序实例 ..................................... 317
18-4 习题?.....................................322
第 19 章?常见职场面试算法
19-1 质数测试?...............................326
19-2 回文算法?...............................327
19-3 欧几里得算法?.........................328
19-3-1 土地区块划分 ............................. 328
19-3-2 最大公约数 greatest common
divisor ........................................ 328
19-3-3 辗转相除法 ................................. 329
19-3-4 递归式函数设计处理欧几里得
算法 ............................................ 330
19-4 最小公倍数 least?common
????multiple?...............................330
19-5 鸡兔同笼问题?.........................330
19-6 挖金矿问题?............................332
19-7 习题?.....................................333
|
內容試閱:
|
前 言
这是一本使用 Python 从零开始指导读者的算法入门书籍,由基础数据结构与算法开始,逐步
解说信息安全算法,最后也讲解了人工智能入门领域的 KNN 和 K-means 算法。本书的特色是理论
与实践同步解说,使用完整的数据结构图例搭配 Python 程序进行解说,可以让读者轻松掌握相关
知识。
全书内容包含约 120 个程序实例,使用约 600 张完整图例,深入讲解了 7 种数据结构和数十种
算法,此外也针对国内外著名公司招聘程序员的算法考题做了讲解。本书包含下列主要内容:
. 时间复杂度;
. 空间复杂度;
. 7 大数据结构完整图解与程序实例;
. 使用二叉树和堆栈图解递归中序、前序和后序打印;
. 7 大排序法完整图解与程序实例;
. 二分搜寻与遍历;
. 递归与回溯算法;
. 八皇后;
. 河内塔;
. 分形与 VLSI 设计应用;
. 图形理论;
. 深度 广度优先搜寻;
. Bellman-Ford 算法;
. Dijkstras 算法;
. 贪婪算法;
. 动态规划算法;
. 信息安全算法;
. 摩斯与凯撒密码;
. 密钥系统观念,同时解说设计密钥方法及目前市面上成熟的密钥;
. 讯息鉴别码 message authentication code;
. 数字签名 digital signature;
. 数字证书 digital certificate;
. 基础机器学习 KNN 算法,读者不用担心,笔者将抛弃数学公式,用很平实的语句叙述并搭配
程序实例,让读者彻底了解此算法;
. 在机器学习的无监督学习中,K-means 算法常被用来做特征学习,笔者也将抛弃数学公式,用 很平实的语句叙述并搭配程序实例,让读者彻底了解此算法;
职场面试常见的算法考题。
一本书最重要的是系统地传播知识,读者可以基于系统的架构,快速学会想要的知识。笔者写过不少计算机领域的著作,本书沿袭了笔者著作的特色,程序实例丰富,本书案例代码与习题答案可扫描封底二维码获取。相信读者通过学习本书内容,必定可以在最短时间内学会使用Python 精通算法应用。本书编写过程虽力求完美,但疏漏难免,希望读者不吝指正。
洪锦魁
|
|