大數據就是這麼任性第一季數據結構和算法(一線經驗、權威資料、知識新鮮、實踐性強、全程源碼)

這門課程是針對大數據工程師和雲計算工程師的基礎課程,同時也是全部計算機專業人士必須掌握的一門課程。算法

若是不掌握數據結構和算法,你將難以掌握高效、專業的數據處理手段,更難以從容應對複雜的大數據處理場景。數據庫

請思考如下問題:數組

一、社交網站(如微博、facebook)中,人與人的關係是海量數據,你如何研究和處理此問題?緩存

二、數據庫的索引做用是什麼?爲何利用哈希、B+樹和堆表等數據結構來組織索引?數據結構

三、爲何Linux的虛擬內存管理模塊,使用紅黑樹來處理VMA的查找?多線程

四、爲何搜索引擎能夠在毫秒級返回搜索結果?架構

五、你如何設計城市道路,保證最小的代價卻能夠實現全城連通?框架

若是你對以上問題還摸不着頭腦,或者你的方案還似是而非,那麼,這門課程就是爲你而準備的。數據結構和算法

學習本門課程,你將不只能回答以上問題,你還能夠回答:分佈式

一、HBase中爲什麼使用BloomFilter算法來處理Block是否已在緩存的問題。

二、ZooKeeper中爲什麼採用樹和節點的概念來描述分佈式系統的依賴與協調關係。

三、LevelDB爲什麼採用跳錶與LSM樹結構來優化性能。

此外,數據結構和算法中不少經典的思想很是值得理解和借鑑,對對計算機行業有強烈興趣的人士亦有裨益。

 

1、課程研發環境

操做系統:Linux CentOS 7

IDE:IntelliJ IDEA 14

主要參考資料:普林斯頓算法第4版英文版、算法導論第3版英文版

其它參考資料:Linux內核源碼、JDK源碼、wiki英文站等

描述語言:Java

2、課程內容簡介

數據結構與算法在計算機學科和IT領域的重要性不言而喻。

其不只僅是計算機專業人士應該掌握的一門基礎課程,更是從事數據庫、數據處理的從業人員應該熟練掌握的一門技術。

本課程針對大學數據結構課程一般過於理論化、實踐性不強、知識及案例不新鮮的特色,針對大數據工程師和雲計算工程師作了如下優化設計:

1.強調工程運用,儘可能避免數學符號描述,但當採用數學符號描述語義更強時則積極採用並作詳細講解。

2.各類數據結構,突出工程實際需求,從實踐中和成功運用的案例(如操做系統、數據庫、大數據庫處理框架、微博等)出發,引導出數據結構運用的場景,精準定位數據結構的價值,力求讓學員能知識落地、學以至用。

3.針對難以理解的算法和某些極爲重要的思想,如遞歸、分治策略等,採用PPT插圖分解步驟、PPT勾畫講解、僞代碼描述講解、源代碼註釋講解、源代碼單步調試跟蹤等手段,力求讓學員能理解算法、掌握算法、運用算法。

4.爲保證所引知識的專業性和考慮到實際大數據處理公司的平常研發、開發狀態,所用參考資料主要爲國際上口碑良好的英文書籍、論文、高級或自身開發人士的博客等,並配以中文解釋,力求學員可以掌握儘量專業的知識。

5.全程源碼,重點突出,考慮學員熟練程度可能千差萬別,因此採用Java這門流行的語言來描述並書寫代碼,力求讓全部學員能看得懂、學得會。

3、課程主要內容:

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、簡介

第1講:什麼是數據結構?

第2講:什麼是算法?

2、線性表

第3講:線性表(數組、鏈表、隊列、棧)

第4講:Linux work queue及JDK線程池

3、樹

第5講:非線性結構、樹、二叉樹

第6講:平衡樹、AVL樹

第7講:B+樹與數據庫索引

4、圖

第8講:圖的概念與存儲

第9講:圖的遍歷

第10講:最小生成樹(MST)、Prim算法、Kruskal算法

第11講:單源最短路徑與Dijkstra算法

第12講:用遺傳算法近似求解TSP問題

五:排序

第13講:選擇排序、插入排序、希爾排序

第14講:堆排序、優先隊列

第15講:快速排序及優化

第16講:歸併排序及優化

第17講:歸併排序與外部排序

第18講:外部排序的優化及延伸

六:查找

第19講:哈希表、二分查找、Trie樹、Ternery樹、搜索引擎與倒排索引、集中式索引與分佈式索引、Map-Reduce初步

 

一、掌握數據處理實踐中常常用到的數據結構和算法

二、培養數據處理思惟

三、培養算法實現能力

四、開拓視野,理解數據結構與算法在操做系統、互聯網、數據庫、海量數據處理場景中的地位與價值

五、知識落地,學會運用數據結構與算法及相關知識分析實際問題、解決實際問題的能力

六、爲深刻、全面、紮實掌握大數據處理技術奠基基礎

相關文章
相關標籤/搜索