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 two matrices: matrix A ( m * n ) and matrix B ( n * p )
Output matrix C ( m * p ) = AB 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
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)
2 * f(n/2) if n≥2 f(n) =
1 if n=1
What is the value of f(n) in terms of n?
2)
3 * f(n/3) if n≥2 f(n) =
1 if n=1
What is the value of f(n) in terms of n?
3)
f(n/3) if n≥2 f(n) =
1 if n=1
What is the value of f(n) in terms of n?