一、数据结构(简单到复杂)
1.Array 数组
2.Stack / Queue 堆 / 队列
3.PriorityQueue (heap) 优先队列 、堆
4.LinkedList (single / double) 列表
5.Tree / Binary Tree 树 / 二叉树
6.Binary Search Tree 二叉搜索树
7.HashTable 哈希表
8.Disjoint Set 并查集
9.Trie 字母树
10.BloomFilter 布隆过滤器
11.LRU Cache 最近最久未使用法?
二、算法
1、脑图在线链接地址: https://www.processon.com/embed/5fc9d408e0b34d4f98d100c0
三、时间复杂度的表现形式(常用)
1.O(1) 常数复杂度
2.O(log n) 对数复杂度
3.O(n) 线性复杂度
4.O(n^2) 平方复杂度
5.O(n^3) 立方复杂度
6.O(2^n) 指数复杂度
7.O(n!) 阶乘
图:
四、举例如何优化程序
从1+2+3+4+5+6+7+8+9+10+11+12...+98+99+100
1.使用循环写(伪码)
y=0 for i=1 to n: y=i+y
时间复杂度为 : O(n)
2.通过求和公式 n(n+1)/2
y=n*(n+1)/2
时间复杂度为 : O(1)
坚持!刻意练习!