如何判断时间复杂度的级别

首先来说一下什么是时间复杂度:

(来源于百度百科)在计算机科学中,时间复杂性,又称时间复杂度算法时间复杂度是一个函数,它定性描述该算法的运行时间。这是一个代表算法输入值的字符串的长度的函数。时间复杂度常用大O符号表述,不包括这个函数的低阶项和首项系数。使用这种方式时,时间复杂度可被称为是渐近的,亦即考察输入值大小趋近无穷时的情况。

那如何判断时间复杂度是大是小呢?

时间复杂度的排序是O(1) < O(logn) < O(n) < O(nlogn) < O(n^2) < O(2^n) < O(n!) < O(n^n)。

那如何知道时间复杂度是哪一个级别的呢?

首先说O(1),这说明代码没有运行全部的代码,也没有循环查找,而是直接找到了自己需要的东西,例如,查找一行数据里的第五个数据,直接给出存储地址,不需要一个一个的取对比,直接去指定位置拿取数据的时间复杂度就是O(1)。

O(n)的复杂度就是有一个for循环,循环查找一个表里的内容,找到需要的内容后返回结果。如下图:

O(n^2)就是嵌套for循环,在for循环里在嵌套一个for循环,里边的循环全部循环一次,外边的循环循环一次,接着里边的循环在循环一次,是不是相当于运行了n*n次,如下图

 

对数阶O(log n)通常是递归,一般情况下,用了递归的算法的时间复杂度,一般为O(log n)。

声明,这些算法是对时间复杂度的一个估值,不是确定的,但是这确实是对代码质量的一个衡量标准。

一般常见的时间复杂度需要的也就这几样,其它的复杂度对应在代码里的目前博主也不知道,如果哪天学会了,会再来更新本章博客的。

扫描二维码关注公众号,回复: 12586545 查看本文章

猜你喜欢

转载自blog.csdn.net/weixin_37081112/article/details/108711115