-3
假设有一份工作,并且有许多工人可用。 下面的代码可能是一个糟糕的优化想法。 但它只是为了分析复杂性。未知概率的计算复杂度
A is a set of N worker
while (A is not empty)
{
B=empty set
foreach a1 in A
{
foreach a2 in A
{
b= merge(a1, a2)
if (b works better than a1 **and** b works better than a2)
add b to B
}
}
A=B
}
问题是,“b比a1和a2好”的概率是未知的。 那么,如何估计上面代码的时间复杂度呢?
什么是'合并()',什么是'B'? – fjardon
看起来像恒定时间的操作。所以这没关系。 –
@Nico Schertler。感谢您指出问题。我纠正了代码,A在while循环内更新。合并()表示a1和a2合并为一组工作人员。也就是说,'A'最初包含一群单身工人。然后,'A'逐渐包含更大的群体。 假设复杂度被计为'if'语句的数量。 –