王宏志、林可编著的《零基础学大数据算法》气氛轻松、语言活泼,但讲授的知识和内容却是非常“专业”的,“算法设计与分析”是计算机学科的核心主题之一,计算机科学中所有问题的解决,都离不开算法设计与分析。本书虽讲解大数据,但无处不紧扣算法设计与分析这一要点,这也让本书带上了浓厚的计算机学科的味道,让读者能够在学习和认识大数据的过程中,学会算法设计与分析,为其他领域知识的学习打下基础。
本书亦算是大数据算法领域的“敲门砖”,本书可以引导读者形成设计大数据算法的思维。在阅读本书之后,读者可以带着设计大数据算法的基本思想去阅读更加深入的专著或论文,进一步的阅读必对大数据算法的学习大有裨益。
王宏志、林可编著的《零基础学大数据算法》是通俗易懂的大数据算法教程。通篇采用师生对话的形式,旨在用通俗的语言、轻松的气氛,帮助读者理解大数据计算领域中的基础算法和思想。
本书由背景篇、理论篇、应用篇和实践篇四部分组成。背景篇介绍大数据、算法、大数据算法等基本概念和背景;理论篇介绍解决大数据问题的亚线性算法、磁盘算法、并行算法、众包算法的基本思想和理论知识;应用篇介绍与大数据问题息息相关的数据挖掘和推荐系统的相关知识;实践篇从实际应用出发,引导读者动手操作,帮助读者通过实际程序和实验验证磁盘算法、并行算法和众包算法。
在讲解每一个大数据问题之前,本书都会介绍大量的经典算法和基础数据结构知识,不仅可以帮助学习过数据结构与算法、算法设计与分析等课程的同学复习,同时能够让入门的“小菜鸟”们,不会因为没有学习过经典算法而对本书望而却步,轻松地掌握大数据算法!
第1篇 背景篇
第1章 何谓大数据
1.1 身边的大数据
1.2 大数据的特点和应用
第2章 何谓算法
2.1 算法的定义
2.2 算法的分析
2.3 基础数据结构——线性表
2.4 递归——以阶乘为例
第3章 何谓大数据算法
第2篇 理论篇
第4章 窥一斑而见全豹——亚线性算法
4.1 亚线性算法的定义
4.2 空间亚线性算法
4.2.1 水库抽样
4.2.2 数据流中的频繁元素
4.3 时间亚线性计算算法
4.3.1 图论基础回顾
4.3.2 平面图直径
4.3.3 最小生成树
4.4 时间亚线性判定算法
4.4.1 全0数组的判定
4.4.2 数组有序的判定
第5章 价钱与性能的平衡——磁盘算法
5.1 磁盘算法概述
5.2 外排序
5.3 外存数据结构——磁盘查找树
5.3.1 二叉搜索树回顾
5.3.2 外存数据结构——B树
5.3.3 高维外存查找结构——KD树
5.4 表排序
5.5 表排序的应用
5.5.1 欧拉回路技术
5.5.2 父子关系判定
5.5.3 前序计数
5.6 时间前向处理技术
5.7 缩图法
第6章 1+1>2——并行算法
6.1 MapReduce初探
6.2 MapReduce算法实例
6.2.1 字数统计
6.2.2 平均数计算
6.2.3 单词共现矩阵计算
6.3 MapReduce进阶算法
6.3.1 join操作
6.3.2 MapReduce图算法概述
6.3.3 基于路径的图算法
第7章 超越MapReduce的并行计算
7.1 MapReduce平台的局限
7.2 基于图处理平台的并行算法
7.2.1 概述
7.2.2 BSP模型下的单源最短路径
7.2.3 计算子图同构
第8章 众人拾柴火焰高——众包算法
8.1 众包概述
8.1.1 众包的定义
8.1.2 众包应用举例
8.1.3 众包的特点
8.2 众包算法例析
第3篇 应用篇
第9章 大数据中有黄金——数据挖掘
9.1 数据挖掘概述
9.2 数据挖掘的分类
9.3 聚类算法——k-means
9.4 分类算法——NaiveBayes
第10章 推荐系统
10.1 推荐系统概述
10.2 基于内容的推荐方法
10.3 协同过滤模型
第4篇 实践篇
第11章 磁盘算法实践
第12章 并行算法实践
12.1 HadoopMapReduce实践
12.1.1 环境搭建
12.1.2 配置Hadoop
12.1.3 “HelloWorld”程序——WordCount
12.1.4 Hadoop实践案例——记录去重
12.1.5 Hadoop实践案例——等值连接
12.1.6 多机配置
12.2 适于迭代并行计算的平台——Spark
12.2.1 Spark初探
12.2.2 单词出现行计数
12.2.3 在Spark上实现WordCount
12.2.4 在HDFS上使用Spark
12.2.5 Spark的核心操作——Transformation和Action
12.2.6 Spark实践案例——PageRank
第13章 众包算法实践
13.1 认识AMT
13.2 成为众包工人