我正试图找出这个作业问题,但我很困惑。我需要找到这个算法ClosestPair的时间复杂度,但我无法弄清楚如何计算它运行的次数。这是我到目前为止所做的:
1. ClosestPair(S, p, r)
2. if p == r
3. return ∞
4. if r - p == 1
5. return Distance(S[p], S[p+1])
6. else
7. m = floor ((p+r)/2) //m is the index of the median (the x-coordinate is the vertical dividing line)
8. d1 = ClosestPair(S, p, m)
9. d2 = ClosestPair(S, m+1, r)
10. d = min(d1, d2)
11. SPrime = points in S within distance d from S[m].x sorted by y.
12. dPrime = BandClosestPair(Sprime, d)
13. return min( dPrime, d)
到目前为止,这是我的时间复杂度
1. 0
2. 1
3. 1
4. 1
5. 1
6. 1
7. 1
8.
9.
10. 1 (It's not actually 1 but it will be a constant so it won't affect the algorithm's time complexity)
11.
12.
13. 1
任何帮助都会很棒!我不希望你为我做一些功课,只是帮助搞清楚:)
答案 0 :(得分:-1)
这可能就是你要找的东西。 https://en.wikipedia.org/wiki/Master_theorem
Tim Roughgarden还就Coursera这个主题进行了很好的讲座。 https://www.coursera.org/learn/algorithm-design-analysis