[TOC]
# 學習數據結構與算法
數據結構與算法不管是學習那一門編程語言都是必不可少的一個課程,而且非常重要。學習好了數據結構與算法,不管是面試還是工作當中有相當重要。一是現在的校招會面試數據結構與算法,因為校招沒有具體的項目經驗,所有只能考察我我們的基礎知識是否扎實牢固,二是社招中越是厲害的公司越更加考察數據結構與算法,三是學好了在工作中可能寫出性能更好的程序。 學習數據結構與算法,我覺得可以掌握以下相關內容。
復雜度分析:空間復雜度分析與時間復雜度分析
10大排序算法:選擇排序、插入排序、冒泡排序、希爾排序、歸并排序、快速排序、堆排序、基數排序、桶排序
10 個數據結構:數組、鏈表、棧、隊列、散列表、二叉樹、堆、跳表、圖、Trie 樹;
10 個算法:遞歸、排序、二分查找、搜索、哈希算法、貪心算法、分治算法、回溯算法、動態規劃、字符串匹配算法
# 知識
| -- Data Structure -- | -- Algorithm -- |
| --- | --- |
| Array | General Coding |
| Stack | In-order/Pre-order/Post-order traversal |
| priorityQueue (heap) | Greedy |
| LinkedList (single/double) | Recursion/Backtrace |
| Tree/Binary | Breadth-first search |
| Binary Search Tree | Depth-first search |
| HashTable | Divide and Conquer |
| Disjoint Set | Dynamic Programming |
| Trie | Binary Search |
| Bloom Filter | Graph |
| LRU Cache | - |
# JavaScript Algorithms and Data Structures
http://www.lib4dev.in/info/trekhleb/javascript-algorithms/README.zh-CN.md
[itsy-bitsy-data-structures.js](https://github.com/jamiebuilds/itsy-bitsy-data-structures/blob/master/itsy-bitsy-data-structures.js)
[https://github.com/mgechev/javascript-algorithms](https://github.com/mgechev/javascript-algorithms)
[https://github.com/trekhleb/javascript-algorithms](https://github.com/trekhleb/javascript-algorithms)
https://hub.fastgit.org/chefyuan/algorithm-base
https://hub.fastgit.org/labuladong/fucking-algorithm
https://hub.fastgit.org/jwasham/coding-interview-university