当前位置:主页 > 书籍配套资源 > 算法配套资源
《程序员必会的40种算法》源码,配图

《程序员必会的40种算法》源码,配图

  • 更新:2021-12-06
  • 大小:467 MB
  • 类别:算法
  • 作者:[加]、伊姆兰·艾哈迈德(Imran、Ahmad)
  • 出版:机械工业出版社
  • 格式:PDF

  • 资源介绍
  • 相关推荐

程序员必会的40种算法》致力于利用算法求解实际问题。第1部分介绍算法的核心内容,探讨什么是算法、如何设计算法,同时学习在算法中使用的数据结构。重点讲解排序算法、查找算法和求解图问题的算法。第二部分讨论各种机器学习算法,包括无监督机器学习算法和传统有监督学习算法,详细讨论一些自然语言处理算法和推荐引擎。第三部分讨论更高级的算法概念,重点介绍了密码算法和大规模算法。本书还包含一些案例分析(如天气预测、推文聚类和电影推荐引擎),用来说明如何才能更好地应用这些算法。

目录

  • 译者序
  • 前言
  • 关于作者
  • 关于审校者
  • 第一部分基础与核心算法
  • 第1章算法概述2
  • 1.1什么是算法2
  • 1.2描述算法逻辑4
  • 1.2.1理解伪代码4
  • 1.2.2使用代码片段6
  • 1.2.3制定执行计划6
  • 1.3Python包简介7
  • 1.3.1Python包8
  • 1.3.2通过Jupyter Notebook执行Python9
  • 1.4算法设计技术10
  • 1.4.1数据维度11
  • 1.4.2计算维度12
  • 1.5性能分析13
  • 1.5.1空间复杂度分析13
  • 1.5.2时间复杂度分析14
  • 1.5.3性能评估14
  • 1.5.4选择算法15
  • 1.5.5大O记号15
  • 1.6验证算法19
  • 1.6.1精确算法、近似算法和随机算法19
  • 1.6.2可解释性20
  • 1.7小结20
  • 第2章算法中的数据结构21
  • 2.1Python中的数据结构21
  • 2.1.1列表22
  • 2.1.2元组26
  • 2.1.3字典27
  • 2.1.4集合28
  • 2.1.5数据帧30
  • 2.1.6矩阵32
  • 2.2抽象数据类型33
  • 2.2.1向量33
  • 2.2.2栈34
  • 2.2.3队列36
  • 2.2.4栈和队列背后的基本思想37
  • 2.2.5树38
  • 2.3小结40
  • 第3章排序算法和查找算法41
  • 3.1排序算法简介41
  • 3.1.1在Python中交换变量42
  • 3.1.2冒泡排序42
  • 3.1.3插入排序44
  • 3.1.4归并排序46
  • 3.1.5希尔排序48
  • 3.1.6选择排序50
  • 3.2查找算法简介51
  • 3.2.1线性查找52
  • 3.2.2二分查找52
  • 3.2.3插值查找53
  • 3.3实际应用54
  • 3.4小结56
  • 第4章算法设计57
  • 4.1算法设计基本概念57
  • 4.1.1第一点—所设计算法是否能产生预期的结果58
  • 4.1.2第二点—所设计算法是否是获取结果的最佳方法58
  • 4.1.3第三点—所设计算法在更大的数据集上表现如何61
  • 4.2理解算法策略61
  • 4.2.1分治策略62
  • 4.2.2动态规划策略64
  • 4.2.3贪心算法64
  • 4.3实际应用—求解TSP65
  • 4.3.1使用蛮力策略66
  • 4.3.2使用贪心算法68
  • 4.4PageRank算法70
  • 4.4.1问题定义70
  • 4.4.2实现PageRank算法70
  • 4.5了解线性规划73
  • 4.6实例—用线性规划实现产量规划73
  • 4.7小结76
  • 第5章图算法77
  • 5.1图的表示77
  • 5.1.1图的类型79
  • 5.1.2特殊类型的边81
  • 5.1.3自我中心网络82
  • 5.1.4社交网络分析82
  • 5.2网络分析理论简介83
  • 5.2.1理解最短路径83
  • 5.2.2创建邻域84
  • 5.2.3理解中心性度量85
  • 5.2.4用Python计算中心性指标87
  • 5.3理解图的遍历88
  • 5.3.1广度优先搜索89
  • 5.3.2深度优先搜索92
  • 5.4实例—欺诈分析93
  • 5.4.1进行简单的欺诈分析96
  • 5.4.2瞭望塔欺诈分析法97
  • 5.5小结99
  • 第二部分机器学习算法
  • 第6章无监督机器学习算法102
  • 6.1无监督学习简介102
  • 6.1.1数据挖掘生命周期中的无监督学习103
  • 6.1.2无监督学习的当前研究趋势105
  • 6.1.3实例106
  • 6.2理解聚类算法107
  • 6.2.1量化相似性107
  • 6.2.2分层聚类113
  • 6.2.3评估聚类效果115
  • 6.2.4聚类算法的应用115
  • 6.3降维116
  • 6.3.1主成分分析116
  • 6.3.2主成分分析的局限性118
  • 6.4关联规则挖掘119
  • 6.4.1实例119
  • 6.4.2市场购物篮分析119
  • 6.4.3关联规则120
  • 6.4.4排序规则122
  • 6.4.5关联分析算法123
  • 6.5实例—聚类相似推文127
  • 6.5.1主题建模128
  • 6.5.2聚类128
  • 6.6异常检测算法129
  • 6.6.1基于聚类的异常检测129
  • 6.6.2基于密度的异常检测129
  • 6.6.3基于支持向量机的异常检测129
  • 6.7小结130
  • 第7章传统监督学习算法131
  • 7.1理解监督机器学习131
  • 7.1.1描述监督机器学习132
  • 7.1.2理解使能条件134
  • 7.1.3区分分类器和回归器134
  • 7.2理解分类算法135
  • 7.2.1分类器挑战性问题135
  • 7.2.2评估分类器139
  • 7.2.3分类器的各个阶段142
  • 7.2.4决策树分类算法143
  • 7.2.5理解集成方法146
  • 7.2.6逻辑回归149
  • 7.2.7支持向量机算法151
  • 7.2.8理解朴素贝叶斯算法153
  • 7.2.9各种分类算法的胜者156
  • 7.3理解回归算法156
  • 7.3.1回归器挑战性问题156
  • 7.3.2线性回归158
  • 7.3.3回归树算法162
  • 7.3.4梯度提升回归算法163
  • 7.3.5各种回归算法的胜者163
  • 7.4实例—预测天气164
  • 7.5小结166
  • 第8章神经网络算法167
  • 8.1理解人工神经网络168
  • 8.2人工神经网络的演化169
  • 8.3训练神经网络171
  • 8.3.1解析神经网络结构171
  • 8.3.2定义梯度下降172
  • 8.3.3激活函数173
  • 8.4工具和框架178
  • 8.4.1Keras178
  • 8.4.2理解TensorFlow181
  • 8.4.3理解神经网络的类型183
  • 8.5迁移学习185
  • 8.6实例—用深度学习实现欺诈检测186
  • 8.7小结189
  • 第9章自然语言处理算法190
  • 9.1自然语言处理简介190
  • 9.1.1理解自然语言处理术语191
  • 9.1.2自然语言工具包192
  • 9.2基于词袋的自然语言处理193
  • 9.3词嵌入简介195
  • 9.3.1词的邻域195
  • 9.3.2词嵌入的性质195
  • 9.4用循环神经网络实现自然语言处理196
  • 9.5用自然语言处理实现情感分析197
  • 9.6实例—电影评论情感分析198
  • 9.7小结200
  • 第10章推荐引擎201
  • 10.1推荐系统简介201
  • 10.2推荐引擎的类型202
  • 10.2.1基于内容的推荐引擎202
  • 10.2.2协同过滤推荐引擎204
  • 10.2.3混合推荐引擎205
  • 10.3理解推荐系统的局限性207
  • 10.3.1冷启动问题207
  • 10.3.2元数据需求207
  • 10.3.3数据稀疏性问题207
  • 10.3.4由社会影响产生的偏差207
  • 10.3.5有限的数据207
  • 10.4实际应用领域208
  • 10.5实例—创建推荐引擎208
  • 10.6小结210
  • 第三部分高 级 主 题
  • 第11章数据算法212
  • 11.1数据算法简介212
  • 11.2数据存储算法简介213
  • 11.3流数据算法简介216
  • 11.4数据压缩算法简介216
  • 11.5实例—推文实时情感分析218
  • 11.6小结221
  • 第12章密码算法222
  • 12.1密码算法简介222
  • 12.1.1理解最薄弱环节的重要性223
  • 12.1.2基本术语223
  • 12.1.3理解安全性需求224
  • 12.1.4理解密码基本设计225
  • 12.2理解加密技术类型228
  • 12.2.1加密哈希函数228
  • 12.2.2对称加密231
  • 12.2.3非对称加密233
  • 12.3实例—机器学习模型部署时的安全问题236
  • 12.3.1MITM攻击236
  • 12.3.2避免伪装238
  • 12.3.3数据加密和模型加密238
  • 12.4小结240
  • 第13章大规模算法241
  • 13.1大规模算法简介241
  • 13.1.1定义精心设计的大规模算法241
  • 13.1.2术语242
  • 13.2并行算法设计242
  • 13.2.1阿姆达尔定律243
  • 13.2.2任务粒度245
  • 13.2.3负载均衡246
  • 13.2.4局部化问题246
  • 13.2.5在Python中启用并发处理246
  • 13.3制定多资源处理策略246
  • 13.3.1CUDA简介247
  • 13.3.2集群计算250
  • 13.3.3混合策略251
  • 13.4小结252
  • 第14章实践中要考虑的要素253
  • 14.1实践要素简介253
  • 14.2算法的可解释性254
  • 14.3理解伦理和算法258
  • 14.3.1使用学习算法易出现的问题258
  • 14.3.2理解伦理因素259
  • 14.4减少模型偏差260
  • 14.5处理NP难问题261
  • 14.5.1简化问题261
  • 14.5.2改造类似问题的已知求解方案261
  • 14.5.3使用概率方法262
  • 14.6何时使用算法262
  • 14.7小结264

资源下载

资源下载地址1:https://pan.baidu.com/s/1l6Fh1X1GbqFAM0MAUFpFBQ

相关资源

网友留言