算法时间复杂度的表示法O(n²)、O(n)、O(1)、O(nlogn)


时间复杂度这个东西,其实更准确点说应该是描述一个算法在问题规模不断增大时对应的时间增长曲线。

所以,这些增长数量级并不是一个准确的性能评价,可以理解为一个近似值,时间的增长近似于logN、NlogN的曲线。


算法时间复杂度的表示法O(n²)、O(n)、O(1)、O(nlogn)算法时间复杂度的表示法O(n²)、O(n)、O(1)、O(nlogn)

简单理解:就是变量为n的时候,算法需要对变量操作次数的量级。

比如:

要找到一个数组里面最大的一个数,你要把n个变量都扫描一遍,操作次数为n,那么算法复杂度是O(n).

用冒泡排序排一个数组,对于n个变量的数组,需要交换变量位置算法时间复杂度的表示法O(n²)、O(n)、O(1)、O(nlogn)次,那么算法复杂度就是O(算法时间复杂度的表示法O(n²)、O(n)、O(1)、O(nlogn)).

有时候,如果对变量操作的次数是个多项式比如算法时间复杂度的表示法O(n²)、O(n)、O(1)、O(nlogn), 就取数量级最大的那个,O(算法时间复杂度的表示法O(n²)、O(n)、O(1)、O(nlogn))


详见知乎https://www.zhihu.com/question/21387264


分类:

技术点:

相关文章: