Chapter 2: Q25E (page 87)
In Section 2.1 we described an algorithm that multiplies two n-bit binary integers x and y in time , where . Call this procedure fast multiply (x,y).
(a) We want to convert the decimal integer (a 1 followed by n zeros) into binary. Here is the algorithm (assume n is a power of 2):
function pwr2bin(n)
if n = 1: return
else:
z= ???
return fastmultiply(z,z)
Fill in the missing details. Then give a recurrence relation for the running time of the algorithm, and solve the recurrence.
(b) Next, we want to convert any decimal integer x with n digits (where n is a power of 2) into binary. The algorithm is the following:
function dec2bin(x)
if n=1: return binary [ x ]
else:
split x into two decimal numbers with n/2 digits each
return ???
Here binary [.] is a vector that contains the binary representation of all one-digit integers. That is, binary role="math" localid="1659333641173" , binary , up to binary . Assume that a lookup in binary takes 0(1) time. Fill in the missing details. Once again, give a recurrence for the running time of the algorithm, and solve it.
Short Answer
a).Filling the missing details of the algorithm.
b). proving the recurrence for the running time of the algorithm.