# This tutorial gives you more exercises on big Oh-nations. CS2468 Tutorial (Week 3)

This tutorial gives you more exercises on big Oh-nations. Give a big-Oh characterization for question 1 and question 2. 1.

Algorithm

MatrixMultiplication(matrix A, matrix B)

Input Output

two matrices: matrix A ( matrix C (

m

*

p

) = AB

m

*

n

for

i

 0

to

m

-1

do for

j

 0

to

p

-1

do

C

i

,

j

 0

for

k

 0

to

n

-1

do

C

i

,

j

 C

i

,

j

+ A

i

,

k

* B

k

,

j

return

C ) and matrix B (

n

*

p

) 2.

Algorithm

binarySearch (int

sortedArray[ ]

, int

n

, int

key

)

Input

a sorted array

sortedArray

in increasing order (supposed that no two elements are equal to each other), the length of the array

n

, and an element to be searched for

key

Output

position of the element

key

or -1 if the element is not in the array low  0 high 

n

– 1

while

low ≤ high mid  (low + high) / 2 if sortedArray [mid] =

key

return

mid

if

sortedArray

[mid] <

key

low  mid + 1

else

high  mid – 1

return

-1

3.

Given the Node class as

public class Node { // Instance variables: private Object element; private Node next; /** Creates a node with null references to its element and next node. */ public Node() { this(null, null); } /** Creates a node with the given element and next node. */ public Node(Object e, Node n) { element = e; next = n; } // Accessor methods: public Object getElement() { return element; } public Node getNext() { return next; } // Modifier methods: public void setElement(Object newElem) { element = newElem; } public void setNext(Node newNext) { next = newNext; } }

How can you use it to implement the Stack and Queue interfaces? What is the time cost for each stack and queue operations?

Extra Exercise:

1)

f(n) = 2 * f(n/2) 1

if if

n≥2 n=1

What is the value of f(n) in terms of n?

2)

f(n) = 3 * f(n/3) 1

if

n≥2

if

n=1

What is the value of f(n) in terms of n?

3)

f(n) = f(n/3) 1

if

n≥2

if

n=1

What is the value of f(n) in terms of n?