College of Computing and Information Technology
College of Computing and Information Technology
Sheet 1
1. Fill in the following table by selecting one of the following: f(n) = O(g(n)), f(n) = (g(n)),
or f(n) = (g(n)). (log n = log2 n).
f(n) g(n)
n3 n6
n3 n3log n
n3 2n log n
n3 n2n
n3 22
n
n6 n3log n
n6 2n log n
n6 n2n
n6 22
n
n3log n 2n log n
n3log n n2n
n3log n 22
n
2n log n n2n
2n log n 22
n
n2n 22
n
Ans: O(n4)
b. int x=0;
for(int i=4*n; i>=1; i--)
x=x+2*i;
Ans: O(n)
c. int z=0;
int x=0;
for (int i=1; i<=n; i=i*3){
z = z+5;
z++;
x = 2*x;
}
Ans: O(log3 n)
d. int y=0;
for(int j=1; j*j<=n; j++)
y++;
Ans: O(n1/2)
e. int b=0;
for(int i=n; i>0; i--)
for(int j=0; j<i; j++)
b=b+5;
Ans: O(n2)
f. int y=1;
int j=0;
for(j=1; j<=2n; j=j+2)
y=y+i;
int s=0;
for(i=1; i<=j; i++)
s++;
Ans: O(n)
g. int b=0;
for(int i=0; i<n; i++)
for(int j=0; j<i*n; j++)
b=b+5;
Ans: O(n3)
h. int x=0;
for(int i=1; i<=n; i=i*3){
if(i%2 != 0)
for(int j=0; j<i; j++)
x++;
}
Ans: O(n)
i. int t=0;
for(int i=1; i<=n; i++)
for(int j=0; j*j<4*n; j++)
for(int k=1; k*k<=9*n; k++)
t++;
Ans: n*2(n1/2)*3(n1/2) = O(n2)
j. int a = 0;
int k = n*n;
while(k > 1){
for (int j=0; j<n*n; j++)
{ a++; }
k = k/2;
}
Ans: O(n2)
S is O(1).
5. Describe an O(n log n)-time algorithm that, given a set S of n integers and another integer k,
determines whether or not there exists two elements in S whose sum is exactly k.