1.2 KiB
1.2 KiB
认识复杂度、对数器、二分法或异运算
- 时间复杂度
- 额外空间复杂度
- 常数项,一个操作的执行时间不以具体样本量为转移(数组寻址),每次执行时间都是固定的时间。
时间复杂度
选择排序
- n*(看+比)+1
- (n-1)* n*(看+比)+1
- (n-2)* n*(看+比)+1
- 2*(n+n-1+n-2+····+1)+n 看+比 2
- 2an平方+bn+n+c
- 2an平方 最高阶,选出最小的,从头开始放。
冒泡排序
- 相邻的两个比较,大的放后面,最大值在后面。
- n-1
- n-2
- n-3
- 1
- n平方
插入排序
- 最好n
- 最差n平方
计算时间复杂度
- 按照最坏的情况来
- 拆分为一个个基本动作
- 如果数据量为n,看基本动作和n之间的关系。
- 只把高阶项留下,低阶项和常数项去除。
常数项
最优解
- 时间复杂度
- 空间复杂度
常数时间操作
- 常见算数操作
- 移位、位运算
- 复制、比较、自增、自减操作
- 数组寻址操作
非常数时间操作
1、链表LinkedList
对数器
局部最小值
数据状况和问题本身梳理问题。 二分排他性 俩边开始找,根据趋势,二分处理。