[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