我发现了一些关于大O符号的引用,但据我所知,算法复杂度是输入数据大小的函数。算法复杂度与输入固定大小
例如,如果气泡排序的复杂度为O(n^2)
,n
是输入数组的大小。对?
但是,如何确定具有固定输入大小和取决于输入值的算法的复杂性。例如,找到最大公约数(GCD)将如下所示:
def GCD(x, y):
while x != y:
if x < y:
x, y = y - x, x
else:
x, y = x - y, x
return x
该算法的复杂性是什么?它是如何确定的?
编辑:更改函数的名称和更正算法的名称。 ShreevatsaR,谢谢你指出。
请阅读现有的SO问题+关于此主题的答案。 – 2010-01-08 04:43:36
你的代码,BTW,发现**最大的**公约数(gcd),也被称为最高公因数(hcf)。一组分数的“最小公分母”是分母最不常见的**倍数**,这是别的。 [对于两个整数x和y,我们有lcm(x,y)= xy/gcd(x,y)。] – ShreevatsaR 2010-01-08 06:00:49
ShreevatsaR,谢谢,我已经改变了它。英语不是我的母语,所以我不确定它叫什么。 – 2010-01-08 06:35:21