ECS 32B – Introduction to Data Structures

ECS 32B – Introduction to Data Structures

Homework 01

Submit only one pdf filevia Gradescope. Do not submit a separate file for each problem. If you handwrite your solutions, make sure they are clear and readable.

Problem 1 (10 points each)

For each of the following functions, do the following:

. Calculate T(n), making sure not to discard constants or low-order terms yet (you may or may not count the counting variable in a for loop)

. Given what you think is the Big-O performance for the function

. Prove that your proposed Big-O for the function is correct (make sure to show your work; do not just provide values for c and n0)

(1) def fun1 ( n ) :

x  =  0

for in range ( 2 ,  n / 2 ) :

x  =  x  *  2

return x

(2) def fun2 ( n ) :

x  =  0

for in range ( n ) :

for in range ( n ) :

for in range ( 1 ,  n ) :

x  =  x  +  1

return x

(3) def fun3 ( n ) :

x  =  0

i   =  2  *  n

while i  >=   1 :

x  =  x  —  i

i   =   i  —  1

return x

(4) def fun4 ( n ) :

x  =  n

for in range ( n  *  n ) :

x  =  x  +  2

return x

(5)                             #   l s t    i s   a   li s t    of   i n t eg e r s

def fun5 ( l s t ) :

x  =  0

for in l s t :

x  =  x  +  y

return x

Problem 2 (10 points each)

Suppose an algorithm solves a problem of input size n in at most the number of steps listed for each T(n) given below. Calculate the Big-Θ (not just Big-O) for each T(n). Show your work, including values for c and n0 .

(1)  T(n) = 10

(2)  T(n) = 2n3 + 1

(3)  T(n) = n4 + 2n2 + nlogn

(4)  T(n) = log(5 x 2n )

(5)  T(n) = 3n2logn


发表评论

电子邮件地址不会被公开。 必填项已用*标注