You are on page 1of 2

CS 201 : Data Structures and Algorithms

Solutions to Exercises 2 on Time Complexity and Big-Oh


Dr.Mehreen Saeed

1. You can apply Rule 4 here

Statement Number of times executed


i=1 1
i<=n n+1
++i n
cout<<i n
Sum =0 n
j=1 n
j<=i ½ n(n+1) + n = ½ n2 + 3/2 n
j++ ½ n(n+1) = ½ n2 + ½ n
Sum++ ½ n(n+1) = ½ n2 + ½ n
cout<<i ½ n(n+1) = ½ n2 + ½ n
cout << Sum n
Total 2n2 + 9n + 2
T(n) = 2n2 + 9n + 2 , T(n) = O(n2)

2. You can apply Rule 5 here

Statement Number of times executed


sum=0 1
i=1 1
i<=n log2n + 1
i=i*2 log2n
cout<<i log2n
cout << sum log2n
j=1 log2n
j<=i 2n-1 + log2n
j++ 2n-1
cout<<j 2n-1
cout << ‘*’ 2n-1
sum++ 2n-1
sum=0 log2n
Total 10n+7log2n-2
T(n) = 10n+7log2n-2, T(n) = O(n)
3. Which rule will you apply here?

Statement Number of times executed


i=1 1
i<n log4n + 1
i=i*4 log4n
cout<<i log4n
j=0 log4n
j<n log4n(n/2+1) = ½ nlog4n + log4n
j=j+2 log4n(n/2)
cout<<j log4n(n/2)
sum++ log4n(n/2)
cout<<sum log4n
Total 2nlog4n+6log4n+2
T(n) = 2nlog4n+6log4n+2, T(n) = O(n logn)

4. Which rule will you apply here?

Statement Number of times executed


i=0 1
i<n n/3 + 1
i=i+3 n/3
cout<<i n/3
j=1 n/3
j<n n/3(log3n+1)=n/3 log3n+n/3
j=j*3 n/3 (log3n)
cout<<j n/3 (log3n)
sum++ n/3(log3n )
cout<<sum n/3
Total 4/3nlog3n+2n+2
T(n) = 4/3nlog3n+2n+2, T(n) = O(n logn)

You might also like