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

  • 相关阅读:
    POJ 2018 二分
    873. Length of Longest Fibonacci Subsequence
    847. Shortest Path Visiting All Nodes
    838. Push Dominoes
    813. Largest Sum of Averages
    801. Minimum Swaps To Make Sequences Increasing
    790. Domino and Tromino Tiling
    764. Largest Plus Sign
    Weekly Contest 128
    746. Min Cost Climbing Stairs
  • 原文地址:https://www.cnblogs.com/timssd/p/5380903.html
Copyright © 2011-2022 走看看