当我准备介绍算法课中期时,我正在通过教授之前发布的一些测试,我发现了这个问题:
计算 gcd(312,455) 的方法有两种:找到每个数字的因式分解,以及使用欧几里得算法。每种方法的复杂性是多少?
他的回答是:
gcd(455,312) = gcd(312,143) = gcd(143,26) = gcd(26,13) = gcd(13,0) = 13
factors(312)= {2, 3, 13} factors(455)= {5, 7, 13}
复杂性:
- gcd -
log(n)
- 因素——
sqrt(n)
他是如何理解复杂性的?