想通过刷算法题目如leetcode上离不开一个O(n)的样子,还有它的名字叫做时间复杂度。刷题目之前,刷踢之前想搞清楚这个到底是什么,什么作用,怎么计算。
1.时间复杂度是什么?
答:本质上是也是一个算法函数,(算法:我个人理解就是解决一个问题或实现一个功能所计算的方法),所以时间复杂度就是一个写好的、用来实现计算编写的程序耗用的时间的一个算法函数。
2.作用?
程序耗用时间是和算法操作单元数量成正比的,假设算法的问题规模为n,算法操作单元数量为f(n),随着n的增大,f(n)增长率就被看作耗用时间增长率,成为时间复杂度,记作O(f(n)).
3.化简计算:忽略次要因素(类似函数判断单调性 看增长速度)
一般时间复杂度的大小关系:O(1)<O(logn)<O(n)<O(n^2)<O(n^3)<O(2^n)
化简:O(3*n^2 + 10*n +1000)=O(n^2)