一、算法
在计算机领域里,算法是一系列程序指令,用于处理特定的运算和逻辑问题。
二、衡量算法的好坏重要标准
1、时间复杂度
2、空间复杂度
三、算法应用场景
1、运算
如:超大整数求积
2、查找
如:在度娘,谷歌上搜索
3、排序
如:电商网站按价格从高到低排序
4、最优决策
如:在地图上选择最佳路线
四、数据结构
data Structure 是数据的组织、管理和存储格式,其目的是高效地访问和修改数据
五、数据结构有哪些
1、线性结构
最简单的数据结构,有数组,链表,及衍生的栈、队列、哈希表。
2、树
相对复杂的数据结构,有二叉树,及衍生的二叉堆
3、图
更为复杂的数据结构,
4、其他数据结构
有跳表、哈希链表、位图等等。
六、时间复杂度
时间复杂度是对一个算法运行时间长短的量度,用大O表示,T(n)=O(f(n))
推导时间复杂度 有几个原则:
- 如果运行时间是常数量级,则用常数1表示
- 只保留时间函数中的最高阶项
- 如果最高阶项存在,则省去最高阶项前面的系数
场景1: T(n)=O(n)
场景2: T(n)=O(logn)
场景3: T(n)=O(1)
场景4: T(n)=O(n^2)
七、空间复杂度
空间复杂度是对一个算法在运行过程中临时占用存储空间大小的量度,用大O表示,S(n)=O(f(n))
空间复杂度有4种情形
1、常量空间 O(1)
2、线性空间 O(n)
3、二维空间 O(n^2)
4、递归空间 (函数调用栈)