以下循环的大O复杂性是什么:
for each vertex u ∈ C do
for each vertex v ∈ C and v > u do
我在这里做的是想象下面的集{1,2,3,4}循环执行这个数字的2个元素的所有组合的函数,(1,2),(1, 3),(1,4),(2,3),(2,4),(3,4)。
是否=(n ^ 2)其中n是集合中元素的数量?
答案 0 :(得分:2)
是的,这是O(n^2)
,假设执行的函数当然是O(1)
,并且迭代器平均每次迭代也是O(1)
(这通常是一个有效的假设)。
请注意,即使您进一步优化它,您也会处理Choose(n,2)
元素和Choose(n,2)=n(n-1)/2
,它们仍然在O(n^2)
。
答案 1 :(得分:1)
提示:写一个方程式,描述组合数量与集合大小的函数关系。
删除任何低阶项并忽略高阶项中的任何常数乘数。