本书是通俗易懂的大数据算法教程。通篇采用师生对话的形式,旨在用通俗的语言、轻松的气
氛,帮助读者理解大数据计算领域中的基础算法和思想。
本书由背景篇、理论篇、应用篇和实践篇四部分组成。背景篇介绍大数据、算法、大数据算法
等基本概念和背景;理论篇介绍解决大数据问题的亚线性算法、磁盘算法、并行算法、众包算法的
基本思想和理论知识;应用篇介绍与大数据问题息息相关的数据挖掘和推荐系统的相关知识;实践
篇从实际应用出发,引导读者动手操作,帮助读者通过实际程序和实验验证磁盘算法、并行算法和
众包算法。
在讲解每一个大数据问题之前,本书都会介绍大量的经典算法和基础数据结构知识,不仅可以
帮助学习过数据结构与算法、算法设计与分析等课程的同学复习,同时能够让入门的“小菜鸟”们,
不会因为没有学习过经典算法而对本书望而却步,轻松地掌握大数据算法!
大数据背景下的亚线性算法、磁盘算法、并行算法、众包算法一一突破
前 言
这是一个互联网的时代,也是一个大数据的时代。经常有朋友问起:什么是大数据?大
数据是做什么用的?我们为什么要研究大数据?应该怎么研究大数据?在寻找这些问题的答案
时,许多朋友找到的内容常常是专业的概念、复杂的公式和难懂的“算法”,这让他们望而却步。
很多计算机专业的新生或低年级学生在听到大数据的概念后对其非常好奇,却因没有足够扎实
的专业基础知识而无法认识和理解大数据问题,更无法对大数据问题给出很好的解决办法。于
是,笔者决定编写一本新生乃至非专业人士也能读懂的大数据算法教程。
本书以一个计算机专业新生小可的口吻,将他内心对大数据的好奇一一询问学识渊博的
Mr. 王。虽然书中的他不懂数据结构,也不懂经典算法的设计与分析,却在Mr. 王的耐心教导
下一一突破了大数据背景下的亚线性算法、磁盘算法、并行算法、众包算法,了解了数据挖掘
和推荐算法的基本思想,更是在Mr. 王的指导下完成了各种大数据算法的实现。在所有大数据
算法的讲授中,本书无处不渗透着对各种经典算法的回顾,学过的读者可以进行充分的复习,
没有学过的读者更是可以借此机会提前掌握各种经典数据结构和经典算法,使得其在今后的学
习中事半功倍。这些贯穿全书的前置知识,也使得新生甚至是非专业人士能够通过本书读懂大
数据,读懂大数据算法。相信非专业人士也能通过大数据算法的思想,重新认识大数据,并获
得一些启迪。
本书前半部分主要以理论知识为主,文中涉及的伪代码、算法等均以简单易懂的自然语言
进行了步骤描述和解释,同时给出了小规模运行的例子,使得读者可以轻松地理解。同时,笔
者也深知理论与实践相结合的重要性。后半部分包含一些让读者进行实践的实验和程序。这需
要具有一些基础程序设计能力,如果读者觉得不能很好地理解它们也不要心急,可以待学会这
些语言后,再来尝试。即使并不完全理解这几种语言的语法,也可以按照书中详尽的步骤进行
实验,体会成果出现在屏幕上的喜悦,其实尝试之后就会发现,阅读它们并不困难。
虽然本书气氛轻松、语言活泼,但讲授的知识和内容却是非常“专业”的,“算法设计与分析”
是计算机学科的核心主题之一,计算机科学中所有问题的解决,都离不开算法设计与分析。本
书虽讲解大数据,但无处不紧扣算法设计与分析这一要点,这也让本书带上了浓厚的计算机学
科的味道,让读者能够在学习和认识大数据的过程中,学会算法设计与分析,为其他领域知识
的学习打下基础。
本书亦算是大数据算法领域的“敲门砖”,本书可以引导读者形成设计大数据算法的思维。
在阅读本书之后,读者可以带着设计大数据算法的基本思想去阅读更加深入的专著或论文,进
一步的阅读必对大数据算法的学习大有裨益。
本书成书时间仓促,笔者水平亦有限,书中内容、表述、推理等方面的各种不当之处在所
难免,敬请各位读者在阅读过程中不吝提出宝贵意见。