数据结构与Big-Oh
又是一篇关于算法的科普文章,如果你是初入行的newbie可以把这篇文章作为入门读物阅读,如果你是工作多年的老司机,可以把这篇文章作为cheatsheet备查。
常见数据结构
- 数组(array) 
- 链表(LinkedList) - 单向列表(Singly-Linked List) 
 双向列表(Doubly-Linked List)
- 队列(Queuen) 
- 栈(Stack) 
- 散列表(HashTable) 
- 二叉树(Binary Tree) 
- B Tree 
- 红黑树(RedBlack Tree) 
常见操作
- 访问某个位置的元素(Access)
- 查找某个元素(Search)
- 插入(Insertion)
- 删除(Deletion)
All in one table
| Data Structure | 访问 | 查找 | 插入 | 删除 | 
|---|---|---|---|---|
| Array | $O(1)$ | $O(N)$ | $O(N)$ | $O(N)$ | 
| Singly-Linked List | $O(N)$ | $O(N)$ | $O(1)$ | $O(1)$ | 
| Doubly-Linked List | $O(N)$ | $O(N)$ | $O(1)$ | $O(1)$ | 
| Queue | $O(N)$ | $O(N)$ | $O(1)$ | $O(1)$ | 
| Stack | $O(N)$ | $O(N)$ | $O(1)$ | $O(1)$ | 
| HashTable | N/A | $O(1)$ | $O(1)$ | $O(1)$ | 
| Binary Tree | $O(log^N)$ | $O(log^N)$ | $O(log^N)$ | $O(log^N)$ | 
| B Tree | $O(log^N)$ | $O(log^N)$ | $O(log^N)$ | $O(log^N)$ | 
| RedBlack Tree | $O(log^N)$ | $O(log^N)$ | $O(log^N)$ | $O(log^N)$ | 
