高級數據結構

數據結構清單

Binomial Heap php

Leftist Tree:左傾堆 html

 

重型網絡教程

1.紙上談兵:算法與數據結構 java

2.CS 598 JGE:Advanced Data Structures(Fall 2015) linux

3.COP 5536 Advanced Data Structures(Florida) git

4.wikibooks Data Structures 程序員

5.Geeksforgeeks(very much) github

6.COMP 5408:Advanced Data Struestures 面試

7.Stackoverflow 算法

書籍推薦

Algorithms in C (Computer Science Series) 數據庫

 (2人評價)

做者: Robert Sedgewick 
出版社: Addison-Wesley Professional 
出版年: 1990-01-11

評語:很是耐心的講解一些常見的算法,很容易入門。這本書涉獵面較廣,除了經典的算法,還有好比數值計算、信號處理、字符串處理、並行運算算法的介紹。

Data Structures and Algorithm Analysis in C (2nd Edition)

 8.8 (61人評價)

做者: Mark Allen Weiss 
出版社: Addison Wesley 
出版年: 1996-09-19

評語:介紹算法和數據結構,講解很深刻。但有些部分的講解有些過於歸納,不容易理解。

The Design and Anaylsis of Computer Algorithms

做者Alfred V. Aho / John E. Hopcroft / Jeffrey D. Ullman 
出版社: Addison-Wesley
出版年: 1974-1-11
頁數: 470
訂價: USD 71.60
裝幀: Paperback
ISBN: 978020100029

Algorithms on Strings, Trees, and Sequences

做者:Dan Gusfield

高級數據結構

1.MIT的高級數據結構教程

連接: Advanced Data Structures

這門課包含各類讓本屌世界觀崩壞的奇詭數據結構和算法,它們包括但不限於:

  • 帶"記憶"的數據結構(Data Structure with Persistence)。
  • van Emde Boas(逆天的插入,刪除,前驅和後繼時間複雜度)。
  • o(1)時間複雜度的的LCA、RMQ和LA解法。
  • 奇幻的o(n)時間複雜度的Suffix Tree構建方法。
  • o(lglgn)的BST。
  • ...

總之高潮迭起,分分高能,惟一的不足就是沒有把它們實現一圈

2. 林厚從主編的《高級數據結構》

林厚從主編的《高級數據結構》在基本數據結構的基礎上,圍繞一些經常使用的高級數據結構,結合大量實戰例題,深刻分析"數據結構是如何服務於算法的"。本書主要內容包括:哈希表、樹與二叉樹、優先隊列與堆、並查集、線段樹、樹狀數組、伸展樹、TreapAVL樹、紅黑樹、SBT、塊狀鏈表與塊狀樹、後綴樹與後綴數組、樹鏈剖分與動態樹等。

3. Advanced Data Structures in C++

Advanced Data Structures in C++;   $10.00;   826 pages;   2006, 2014;  Vic Broquard;   Broquard eBooks;   ISBN: 978-0-9705697-7-6 3rd Edition

Link: http://www.broquard-ebooks.com/advanced-data-structures-in-cpp/

Chapter 1 — A Review of Classes
Chapter 2 — Advanced Features of Classes
Chapter 3 — Operator Overloading
Chapter 4 — Inheritance
Chapter 5 — Abstract Base Classes
Chapter 6 — C++ Error Handling
Chapter 7 — A Review of the Basic Container Classes
Chapter 8 — Templates
Chapter 9 — Binary Files and Hashing Techniques
Chapter 10 — Trees
Chapter 11 — Sorting Algorithms
Chapter 12 — B-trees and AVL Trees
Chapter 13 — Heaps, Priority Queues, and Graphs
Chapter 14 — Of Sets and Maps
Chapter 15 — An Introduction to the STL — Standard Template Library
Chapter 16 — Complex Analysis

4.CSDN上有很多"高級數據結構"的資源

知乎數據結構

  1. 如何學習數據結構

連接:https://www.zhihu.com/question/21318658

資源論

1.讀書橙書: 《算法 第四版》

亞馬遜中文版: amazon.cn 的頁面

線上資源: Algorithms, 4th Edition by Robert Sedgewick and Kevin Wayne

配套的習題答案:

jimmysuncpt/Algorithms

aistrate/AlgorithmsSedgewick · GitHub

http://algs4.cs.princeton.edu/code/

Programming Assignments

2.Coursera課程:

Part 1: https://www.coursera.org/course/algs4partI
Part 2:
https://class.coursera.org/algs4partII-006

3.斯坦福的算法公開課

Part 1: https://www.coursera.org/course/algo

Part 2: https://www.coursera.org/course/algo2

4.普林斯頓的算法課程

Coursera - Free Online Courses From Top Universities

Algorithms, 4th Edition by Robert Sedgewick and Kevin Wayne

5.算法可視化

http://visualgo.net

http://zh.visualgo.net/zh/

 

6.在線視頻客課堂:網易雲課堂,慕課

★★★★★浙江大學的:數據結構 - 網易雲課堂

★★★★★清華大學的:數據結構-學堂在線慕課(MOOC)平臺

7.數據結構-C語言

《數據結構-C語言版》(嚴蔚敏,吳偉民版)課本源碼+習題集解析使用說明

附帶數據結構清單

方法實踐論

  1. 數據結構的前期學習要重理解。以倒推的方式,搞清楚每種數據結構產生的目標。多畫畫圖,思考一下,理解透徹之後。再去作練習題會事半功倍。
  2. 把線性表、鏈表、樹、圖、各類排序算法,熟悉一遍,熟悉須要達到的結果是提到一種結構,腦海立馬能夠反映出其中元素的組織方式,插入刪除操做的步驟。
  3. 把全部的(大部分)的算法和數據結構寫一遍。這是一個作合格程序員的基礎;
  4. 把《STL源碼剖析》看看。會對設計實現有一些新的認識。
  5. 參考STL的實現,拋去內存管理和迭代器的部分只看實現的話仍是很容易從中學到東西的。 vectorlist hashtable 到紅黑樹等都有;
  6. 強啃linux內核剖析(同時在參考30天自制操做系統和thuucore os7個實驗),看到裏面的源碼,更加進一部的理解了數據結構,操做系統;
  7. 把全部經典算法寫一遍:二分查找,幾種經典排序如冒泡,快排,歸併排序,並弄清楚他們的差異;top-k,二叉樹,二叉樹查找,平衡樹,B樹系列,大小根堆,最好知道各自的應用場景加深理解;
  8. 看算法源碼:看一些開源系統裏面應用算法知識的源碼,好比緩存系統裏面的雙向鏈表+hash實現;數據庫系統裏面的B+樹的使用實現過程;
  9. 刷題:<劍指Offer>,<編程之美>,<結構之法:面試和算法心得>,LeetCodeOnlineJudge,九度OnlineJudge,用代碼記錄你的成長之路,冉文傑算法問題選編, LintCode - 編程面試題在線訓練平, LeetCode / LintCode 答案查詢
  10. 不要總折騰數據結構、發明數據結構,理解不一樣應用場景的特色,遠比一味地看算法、數據結構來的實在, 機械硬盤爲何索引文件系統經常採用B+樹?由於機械硬盤順序讀取快、隨機讀取慢的問題,B+樹就是專門針對機械硬盤這個工做特色提出的;
  11. 開竅方法之一:學習LISP
  12. 去杭電,pku之類的oj上刷刷題目
  13. The Science of Programming, 證實簡單代碼段的正確性是一個很神奇的技能——由於面試時大多數公司都會要求在紙上寫一段代碼,而後面試官檢查這段代碼,若是你可以本身證實本身寫的代碼是正確的,面試官還能挑剔什麼呢?
  14. 進階版:《STL源碼剖析》

學習數據結構/算法要經歷3個階段:

理解數據結構/算法的原理
也就是說可以在腦子裏明白這個數據結構/算法是怎樣工做的,知道這樣作的正確性。固然,若是理解有困難能夠藉助其餘知友們推薦的可視化工具:VisuAlgo - 數據結構和算法動態可視化 (Chinese)

用C/C++實現
這一步也是最考驗一我的編程基本功的。寫出簡潔、優雅、具備表現力的代碼可以使數據結構的學習變得很簡單。反之,若是接口設計得太複雜、邊界狀況不注意處理或者不注意效率的話,就會出現各類bug:內存泄漏、野指針、遞歸棧溢出……
所以,建議學習的時候多參考優秀的教材。我用的是鄧俊輝大大的數據結構C++版(這裏安利一下學堂在線上的配套MOOC數據結構(2015秋)-學堂在線慕課(MOOC)平臺)和Weiss的數據結構與算法分析。這兩本書的主頁上都提供了源代碼下載。

分析時間和空間複雜度、優勢、缺點以及適用於解決的問題

2.如何將數據結構和算法應用到實際之中

連接: https://www.zhihu.com/question/20066988

 

3.Coursera(或其餘慕課平臺)上有哪些算法數據結構相關的課程值得推薦

連接: https://www.zhihu.com/question/49606500

4.學習算法與數據結構,有什麼比較好的mooc推薦麼,還有比較好的書籍推薦?

連接: https://www.zhihu.com/question/34605825

5.有哪些相似帶花樹的冷門算法或數據結構?

連接: https://www.zhihu.com/question/40028742

 

6.有哪些算法或數據結構是ACM大牛們在比賽中創造出來的?

連接: https://www.zhihu.com/question/26547156

7.你所讀的計算機科學方向,有哪些不錯的講義(Notes)?

連接: https://www.zhihu.com/question/38300204

8.哪本《數據結構與算法》最好?

連接: https://www.zhihu.com/question/21628833

9.用淺顯易懂的方式來說解數據結構和算法

連接: https://zhuanlan.zhihu.com/DataStructureAndAlgorithm

10. 個人數據結構之路

連接: https://zhuanlan.zhihu.com/data-structure

 

11. 算法數據結構中有那些奇技淫巧

連接: https://www.zhihu.com/question/33776070

相關文章
相關標籤/搜索