4-2 Parameter-passing costs
Throughout this book, we assume that parameter passing during procedure calls takes constant time, even if an N-element array is being passed. This assumption is valid in most systems because a pointer to the array is passed, not the array itself. This problem examines the implications of three parameter-passing strategies:
- An array is passed by pointer. Time =ฮ(1).
- An array is passed by copying. Time =ฮ(N), where N is the size of the array.
- An array is passed by copying only the subrage that might be accessed by the called procedure. Time =ฮ(qโp+1) if the subarray A[p..q] is passed.
a. Consider the recursive binary search algorithm for finding a number in a sorted array (see Exercise 2.3-5). Give recurrences for the worst-case running times of binary search when arrays are passed using each of the three methods above, and give good upper bounds on the solutions of the recurrences. Let N be the size of the original problems and n be the size of a subproblem.
b. Redo part (a) for the MERGE-SORT algorithm from Section 2.3.1.
a.
- T(n)=T(n/2)+c=ฮ(lgn). (master method)
-
ฮ(nlgn).
T(n)โ=T(n/2)+cN=2cN+T(n/4)=3cN+T(n/8)=i=0โlgnโ1โ(2icN/2i)=cNlgn=ฮ(nlgn).โ
-
T(n)=T(n/2)+cn=ฮ(n). (master method)
b.
- T(n)=2T(n/2)+cn=ฮ(nlgn). (master method)
-
ฮ(n2).
T(n)โ=2T(n/2)+cn+2N=4N+cn+2c(n/2)+4T(n/4)=8N+2cn+4c(n/4)+8T(n/8)=i=0โlgnโ1โ(cn+2iN)=i=0โlgnโ1โcn+Ni=0โlgnโ1โ2i=cnlgn+N2โ12lgnโ1โ=cnlgn+nNโN=ฮ(nN)=ฮ(n2).โ
-
ฮ(nlgn).
T(n)โ=2T(n/2)+cn+2n/2=2T(n/2)+(c+1)n=ฮ(nlgn).โ