我编写了一个简单的算法,只要用户拖放它们,就可以重新排序列表中的项目。此外,如果删除某个项目或添加了一个项目,则将重新排序该列表。该算法包含三个分离的线性for循环(每个循环中的每一个都是O(n))并且具有两个嵌套循环(O(n ^ 2))。总复杂度是否为O(n + n + n + n ^ 2)= O(3n + n ^ 2)?
如何计算总大O?
提前谢谢
答案 0 :(得分:3)
O(3n + n^2)
与O(n^2)
相同。
Big O符号仅描述限制行为,并且两个函数都具有相同的限制行为 - 将n
加倍。 (当n
变为无穷大时,3n
组件相对于n^2
组件变得越来越小。在极限情况下,它完全支配它。)