Question: Consider algorithms based on the divide & conquer paradigm SmallestDist(A[1..n]) if n = 1 return else if n = 2 return D(A[1], A[2]) else m

Consider algorithms based on the divide & conquer paradigm

SmallestDist(A[1..n])

if n = 1

return

else if n = 2

return D(A[1], A[2])

else m n/2

d1 SmallestDist(A[1..m])

d2 SmallestDist(A[m + 1..n])

d0 min(d1, d2)

return CrossDist(A[1..n], m, d0)

where CrossDist(A[1..n], m, d0) returns the minimum of d0, and the smallest distance between a point inA[1..m] and a point in A[m + 1..n].

First assume that CrossDist is implemented in the naive way:

CrossDist(A[1..n], m, d0)

d d0

for i 1 to m

for j m + 1 to n

d min(d, D(A[i], A[j]))

return d

With this implementation, analyze SmallestDist to give precise and simple bounds for the asymptotic behavior of D(n) and T(n). D(n) which the number of calls to the function D and T(n) which is the overall running time.

Step by Step Solution

There are 3 Steps involved in it

1 Expert Approved Answer
Step: 1 Unlock blur-text-image
Question Has Been Solved by an Expert!

Get step-by-step solutions from verified subject matter experts

Step: 2 Unlock
Step: 3 Unlock

Students Have Also Explored These Related Databases Questions!