算法初级

常数时间操作,加减乘除位运算,数组下标等等都是常数时间没和数据量没有关系。

不要低阶项,只要高阶项,不要高阶项系数,剩下的就是时间复杂度。

在进行计算时间复杂度的时候,如果数据样本量不确定,并且有多个计算项式,这个时候应该将所有项式全部保留下来,只有当数据量大小可以进行比较的时候,才可以确定具体的时间复杂度。

冒泡和选择算法和是数据状况没有关系的,它们的选择策略决定了时间复杂度,但是插入算法是不一样,如果数据本身是有序的,那么时间复杂度是O(N),如果是逆序的,时间复杂度是O(N^2)。

递归的剖析

T(N) = a T(n/b) + O(n^d)

问题本身的时间复杂度= 子过程调用的次数 * 子过程的时间复杂度 + 除此之外的时间复杂度

用master定理就可以直接求解复杂度。

猜你喜欢

转载自www.cnblogs.com/randyniu/p/9247561.html