***评估算法优劣的核心指标:
1.时间复杂度(流程决定) 2.额外空间复杂度(流程决定) 3.常数项时间(实现细节决定)
***认识时间复杂度
常数时间的操作:如果一个操作的执行时间不以具体的样本量为转移,每次执行的时间是固定时间。称这样的操作为常数时间的操作。
****常见的常数操作:
- 常见的算术操作(+、-、*、/、%等)
- 常见的位运算(>>、>>>、<<、|、&、^等)
- 赋值、比较、自增、自减操作等。
- 数组寻址操作。
remark1:在表达式中,只要高阶项,不要低阶项,也不要高阶项的系数,剩下的部分如果为f(N),那么时间复杂度为0(f(N))。
remark2:评价一个算法流程的好坏,先看时间复杂度的指标,然后再分析不同数据样本下的实际运行时间,也就是“常数项时间”。