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

來源:互聯網
上載者:User

標籤:

這門課程是針對大資料工程師和雲端運算工程師的基礎課程,同時也是所有電腦專業人士必須掌握的一門課程。

如果不掌握資料結構和演算法,你將難以掌握高效、專業的資料處理手段,更難以從容應對複雜的大資料處理情境。

請思考以下問題:

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、為深入、全面、紮實掌握大資料處理技術奠定基礎

 

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

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.