大数据就是这么任性第一季数据结构和算法(一线经验、权威资料、知识新鲜、实践性强、全程源码)

这门课程是针对大数据工程师和云计算工程师的基础课程,同时也是所有计算机专业人士必须掌握的一门课程。

如果不掌握数据结构和算法,你将难以掌握高效、专业的数据处理手段,更难以从容应对复杂的大数据处理场景。

请思考以下问题:

1、社交网站(如微博、facebook)中,人与人的关系是海量数据,你如何研究和处理此问题?

2、数据库的索引作用是什么?为什么利用哈希、B+树和堆表等数据结构来组织索引?

3、为什么Linux的虚拟内存管理模块,使用红黑树来处理VMA的查找?

4、为什么搜索引擎可以在毫秒级返回搜索结果?

5、你如何设计城市道路,保证最小的代价却可以实现全城连通?

如果你对以上问题还摸不着头脑,或者你的方案还似是而非,那么,这门课程就是为你而准备的。

学习本门课程,你将不仅能回答以上问题,你还可以回答:

1、HBase中为何使用BloomFilter算法来处理Block是否已在缓存的问题。

2、ZooKeeper中为何采用树和节点的概念来描述分布式系统的依赖与协调关系。

3、LevelDB为何采用跳表与LSM树结构来优化性能。

此外,数据结构和算法中很多经典的思想非常值得理解和借鉴,对对计算机行业有强烈兴趣的人士亦有裨益。

一、课程研发环境

操作系统:Linux CentOS 7

IDE:IntelliJ IDEA 14

主要参考资料:普林斯顿算法第4版英文版、算法导论第3版英文版

其它参考资料:Linux内核源码、JDK源码、wiki英文站等

描述语言:Java

二、课程内容简介

数据结构与算法在计算机学科和IT领域的重要性不言而喻。

其不仅仅是计算机专业人士应该掌握的一门基础课程,更是从事数据库、数据处理的从业人员应该熟练掌握的一门技术。

本课程针对大学数据结构课程通常过于理论化、实践性不强、知识及案例不新鲜的特点,针对大数据工程师和云计算工程师做了以下优化设计:

1.强调工程运用,尽量避免数学符号描述,但当采用数学符号描述语义更强时则积极采用并做详细讲解。

2.各种数据结构,突出工程实际需求,从实践中和成功运用的案例(如操作系统、数据库、大数据库处理框架、微博等)出发,引导出数据结构运用的场景,精准定位数据结构的价值,力求让学员能知识落地、学以致用。

3.针对难以理解的算法和某些极为重要的思想,如递归、分治策略等,采用PPT插图分解步骤、PPT勾画讲解、伪代码描述讲解、源代码注释讲解、源代码单步调试跟踪等手段,力求让学员能理解算法、掌握算法、运用算法。

4.为保证所引知识的专业性和考虑到实际大数据处理公司的日常研发、开发状态,所用参考资料主要为国际上口碑良好的英文书籍、论文、高级或自身开发人士的博客等,并配以中文解释,力求学员能够掌握尽可能专业的知识。

5.全程源码,重点突出,考虑学员熟练程度可能千差万别,所以采用Java这门流行的语言来描述并书写代码,力求让所有学员能看得懂、学得会。

三、课程主要内容:

1.数据结构和算法概述

2.数组、链表、队列、栈等线性表

3.二叉树、BST、AVL树及二叉树的递归与非递归遍历

4.B+树

5.跳表

6.图、图的存储、图的遍历

7.有向图、无向图、懒惰与积极的普利姆算法、克鲁斯卡尔算法及MST、单源最短路径问题及Dijkstra算法

8.并查集与索引式优先队列、二叉堆

9.遗传算法初步与TSP问题

10.内部排序(直接插入、选择、希尔、堆排序、快排、归并等)算法与实践中的优化

11.外部排序与优化(文件编码、数据编码、I/O方式与JVM特点、多线程、多路归并等)

12.哈希表、Trie树、倒排索引、分布式索引初步(Map-Reduce)

浩然讲师:

曾在中科大及中科院学习,熟悉服务端、分布式系统、大数据处理框架的开发、架构、设计及优化。

高级开发工程师、大数据工程师。

一、简介

第1讲:什么是数据结构?

第2讲:什么是算法?

二、线性表

第3讲:线性表(数组、链表、队列、栈)

第4讲:Linux work queue及JDK线程池

三、树

第5讲:非线性结构、树、二叉树

第6讲:平衡树、AVL树

第7讲:B+树与数据库索引

四、图

第8讲:图的概念与存储

第9讲:图的遍历

第10讲:最小生成树(MST)、Prim算法、Kruskal算法

第11讲:单源最短路径与Dijkstra算法

第12讲:用遗传算法近似求解TSP问题

五:排序

第13讲:选择排序、插入排序、希尔排序

第14讲:堆排序、优先队列

第15讲:快速排序及优化

第16讲:归并排序及优化

第17讲:归并排序与外部排序

第18讲:外部排序的优化及延伸

六:查找

第19讲:哈希表、二分查找、Trie树、Ternery树、搜索引擎与倒排索引、集中式索引与分布式索引、Map-Reduce初步

1、掌握数据处理实践中经常用到的数据结构和算法

2、培养数据处理思维

3、培养算法实现能力

4、开拓视野,理解数据结构与算法在操作系统、互联网、数据库、海量数据处理场景中的地位与价值

5、知识落地,学会运用数据结构与算法及相关知识分析实际问题、解决实际问题的能力

6、为深入、全面、扎实掌握大数据处理技术奠定基础

时间: 2024-10-18 12:17:43

大数据就是这么任性第一季数据结构和算法(一线经验、权威资料、知识新鲜、实践性强、全程源码)的相关文章

下载大数据就是这么任性第一季数据结构和算法(一线经验、权威资料、知识新鲜、实践性强、全程源码)

java语言实现,100多课下载地址:http://pan.baidu.com/s/1dFJUbp3现200转让了,联系QQ:380539674 一.简介第1讲:什么是数据结构?第2讲:什么是算法?二.线性表第3讲:线性表(数组.链表.队列.栈)第4讲:Linux work queue及JDK线程池三.树第5讲:非线性结构.树.二叉树第6讲:平衡树.AVL树第7讲:B+树与数据库索引四.图第8讲:图的概念与存储第9讲:图的遍历第10讲:最小生成树(MST).Prim算法.Kruskal算法第11

[大数据性能调优] 第一章:性能调优的本质、Spark资源使用原理和调优要点分析

本課主題 大数据性能调优的本质 Spark 性能调优要点分析 Spark 资源使用原理流程 Spark 资源调优最佳实战 Spark 更高性能的算子 引言 我们谈大数据性能调优,到底在谈什么,它的本质是什么,以及 Spark 在性能调优部份的要点,这两点让直式进入性能调优都是一个至关重要的问题,它的本质限制了我们调优到底要达到一个什么样的目标或者说我们是从什么本源上进行调优.希望这篇文章能为读者带出以下的启发: 了解大数据性能调优的本质 了解 Spark 性能调优要点分析 了解 Spark 在资

大数据技术之_16_Scala学习_08_数据结构(下)-集合操作+模式匹配

第十一章 数据结构(下)-集合操作11.1 集合元素的映射-map11.1.1 map 映射函数的操作11.1.2 高阶函数基本使用案例1+案例211.1.3 使用 map 映射函数来解决11.1.4 模拟实现 map 映射函数的机制11.1.5 课堂练习11.2 集合元素的扁平-flatMap11.3 集合元素的过滤-filter11.4 集合元素的化简-reduce11.5 集合元素的折叠-fold11.6 集合元素的扫描-scan11.7 集合的综合应用案例11.8 集合的合并-zip11

王家林亲传《DT大数据梦工厂》第一讲Scala开发环境搭建和Hellworld解析

土豆视频:http://www.tudou.com/programs/view/99sazBunsHg/ 你想了解大数据,你想成为年薪百万吗?那你还等着什么,快点来吧!跟着王家林老师学习spark大数据 这一讲,王老师主讲了Scala环境的搭建 1.安装Java(建议安装java8),安装好后,设置环境变量(java_home.path.classpath这个环境变量) 2.安装Scala,下载地址:spark.apache.org(建议安装2.10.x以上版本),设置环境变量(scala_ho

Spark修炼之道(基础篇)——Linux大数据开发基础:第一节、Linux介绍、安装及使用初步

本节主要内容 Linux简史 Linux特点 Ubuntu Linux安装 Linux使用初步 1. Linux简史 要讲述大名鼎鼎的Linux,必然要先从UNIX系统谈起,下面这幅图给出了Unix系统的进化图: 图片来源:http://baike.baidu.com/link?url=QfoqWtWGs-BjpnfEy_AUk7Bm3XHuf6JbN92HCOoUBfFfj8BuSDkbwmldtmUEmGRDUwqsQMIV4jCKHvdkSPr3Lq 从进化图中可以看到,目前所有的主流操作

CentOS6安装大数据软件Apache版本 第一章:各个软件版本介绍

1. 软件的版本选择 在大数据领域,我们使用的版本一般有2个选择,一个是官方发布的版本,大多数为Apache发布的版本(一般为免费的),另一个是由其他公司对官方版本进行集成的版本(一般是要收费的):收费版本一般选择CDH的版本,它对软件做了一些兼容性处理.如果使用CDH版本,请保证CDH版本一致,才能解决兼容性问题:如下图: apache版本:https://archive.apache.org/dist/ CDH版本:http://archive-primary.cloudera.com/cd

大数据开发Hadoop工程师-第一课 Java基本知识和JDK的安装配置

Java概述 Java的版本 Java为消费类智能电子产品而设计,但智能家电产品并没有像最初想象的那样拥有大的发展.跨平台是Java语言的核心优势,赶上最初互联网的发展,并随着互联网的发展而发展,建立了强大的生态体系,目前已经覆盖IT各行业的"第一大语言",是计算机界的"英语". JavaSE(J2SE)(Java2 Platform Standard Edition)(Java平台标准版) 标准版,定位在个人计算机上的应用.这个版本是Java平台的核心,主要用于桌

【大数据面试宝典】 第一篇 Hadoop 面试题

Hadoop常见的端口 Hadoop生态圈 Hadoop配置文件以及简单的Hadoop集群搭建 Hadoop参数调优 项目经验之基准测试 Hadoop宕机 Hadoop 高可用配置 Hadoop 常见的端口 ? dfs.namenode.http-address:50070 ? dfs.datanode.http-address:50075 ? SecondaryNameNode辅助名称节点端口号:50090 ? dfs.datanode.address:50010 ? fs.defaultFS

大数据之ES系列——第一篇 ElasticSearch2.2 集群安装部署

第一部分  安装准备 准备三台主机节点: hc11.spads  192.168.160.181 hc12.spads  192.168.160.182 hc13.spads  192.168.160.183 准备软件包: elasticsearch-2.2.0.tar.gz 注:将以上软件包上传至各主机节点/opt/softwareRes/目录下. 第二部分 安装配置 elasticsearch-2.2.0 1.各主机节点分别解压软件包 elasticsearch-2.2.0.tar.gz t