算法中时间空间复杂度说明

时间:2019-06-15
本文章向大家介绍算法中时间空间复杂度说明,主要包括算法中时间空间复杂度说明使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

  在描述算法复杂度时,经常用到o(1), o(n), o(logn), o(nlogn)来表示对应算法的时间复杂度,这是算法的时间复杂度的表示。

O后面的括号中有一个函数,指明某个算法的耗时与数据增长量之间的关系。其中的n代表输入数据的量。

表达式 说明 示例
O(1)

最低时间复杂度,也就是耗时与输入数据大小无关,

无论输入数据增大多少倍,耗时/耗空间都不变。

 哈希算法(无论数据规模多大,都可以在一次计算后找到目标,

不考虑冲突的话)

O(n) 数据量增大几倍,耗时也增大几倍。   遍历算法
O(logn) 

当数据增大n倍时,耗时增大logn倍(这里的log是以2为底的,

比如,当数据增大256倍时,耗时只增大8倍,

是比线性还要低的时间复杂度) 

1. 二分查找就是O(logn)的算法,每找一次排除一半的可能,

256个数据中查找只要找8次就可以找到目标.

2.欧几里德算法(求最大公因数);

3.求幂;

O(nlogn)

n乘以logn,当数据增大256倍时,耗时增256*8=2048倍。

这个复杂度高于线性低于平方。

归并排序就是O(nlogn)的时间复杂度。

参考:https://blog.csdn.net/qq_34229351/article/details/80841482

原文地址:https://www.cnblogs.com/Rawls/p/11027975.html