我编写了一个简单的算法来重新排序列表中的项目,只要用户拖放它们。此外,如果一个项目被删除或添加一个现在的项目,列表将被重新排序。该算法包含三个分离的线性 for 循环(每个循环都是 O(n) )并有两个嵌套循环( O(n^2) )。总复杂度是O(n+n+n+n^2)=O(3n+n^2)吗?
我如何计算总的大 O ?
先感谢您
我编写了一个简单的算法来重新排序列表中的项目,只要用户拖放它们。此外,如果一个项目被删除或添加一个现在的项目,列表将被重新排序。该算法包含三个分离的线性 for 循环(每个循环都是 O(n) )并有两个嵌套循环( O(n^2) )。总复杂度是O(n+n+n+n^2)=O(3n+n^2)吗?
我如何计算总的大 O ?
先感谢您
O(3n + n^2)
和 是一样的O(n^2)
。
大 O表示法仅描述限制行为,并且两个函数具有相同的限制行为——将n
它们加倍四倍。(随着n
走向无穷大,3n
组件相对于组件变得越来越小n^2
。在极限处,它完全支配它。)