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

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

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

    请思考以下问题:

    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、为深入、全面、扎实掌握大数据处理技术奠定基础

  • 相关阅读:
    Sigma Function (LightOJ
    Least Common Multiple (HDU
    七夕节 (HDU
    Goldbach`s Conjecture(LightOJ
    tarjan图论算法
    数论基础(更新中)
    You Are Given a Decimal String... CodeForces
    【UOJ#22】【UR#1】外星人
    【UOJ#21】【UR#1】缩进优化
    【BZOJ3242】【UOJ#126】【NOI2013】快餐店
  • 原文地址:https://www.cnblogs.com/timssd/p/5380903.html
Copyright © 2011-2022 走看看