[TOC]
# 學(xué)習(xí)數(shù)據(jù)結(jié)構(gòu)與算法
數(shù)據(jù)結(jié)構(gòu)與算法不管是學(xué)習(xí)那一門(mén)編程語(yǔ)言都是必不可少的一個(gè)課程,而且非常重要。學(xué)習(xí)好了數(shù)據(jù)結(jié)構(gòu)與算法,不管是面試還是工作當(dāng)中有相當(dāng)重要。一是現(xiàn)在的校招會(huì)面試數(shù)據(jù)結(jié)構(gòu)與算法,因?yàn)樾U袥](méi)有具體的項(xiàng)目經(jīng)驗(yàn),所有只能考察我我們的基礎(chǔ)知識(shí)是否扎實(shí)牢固,二是社招中越是厲害的公司越更加考察數(shù)據(jù)結(jié)構(gòu)與算法,三是學(xué)好了在工作中可能寫(xiě)出性能更好的程序。 學(xué)習(xí)數(shù)據(jù)結(jié)構(gòu)與算法,我覺(jué)得可以掌握以下相關(guān)內(nèi)容。
復(fù)雜度分析:空間復(fù)雜度分析與時(shí)間復(fù)雜度分析
10大排序算法:選擇排序、插入排序、冒泡排序、希爾排序、歸并排序、快速排序、堆排序、基數(shù)排序、桶排序
10 個(gè)數(shù)據(jù)結(jié)構(gòu):數(shù)組、鏈表、棧、隊(duì)列、散列表、二叉樹(shù)、堆、跳表、圖、Trie 樹(shù);
10 個(gè)算法:遞歸、排序、二分查找、搜索、哈希算法、貪心算法、分治算法、回溯算法、動(dòng)態(tài)規(guī)劃、字符串匹配算法
# 知識(shí)
| -- 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
