This preview shows pages 1–3. Sign up to view the full content.
Discussion 3A Notes (Week 10, March 12)
TA: Brian Choi ([email protected])
Section Webpage:
http://www.cs.ucla.edu/~schoi/cs32
Final Practice
BigO
Provide the complexity of each algorithm below.
1. Assume N >> 5.
for (int i = 0; i < N; i++)
{
for(int j = 0; j < i; j++)
{
for(int k = 0; k < 5; k++)
{
for(int l = 0; l < N; l += 2)
{
cout << arr[l] << endl;
}
}
}
}
2. DepthFirst Traversal on a binary tree
3. BreadthFirst Traversal on a binary tree
4. Suppose there is an array of
n
(~ 1 million) elements in a random order. You want to run a search and
look for a certain item. What is the best you can do if:
1) you run a search once (i.e. “Is there 5 in the array?”)
2) you run search million times (i.e. “Is there 5? 16? 73? .
..)
Discuss the algorithm you would use for each case. You’re free to construct/destruct other data structures
as you need them.
5. Which one takes longer?
O(log n)
O(n)
O(n log n)
O(n
2
)
O(n log n)
O(n)
O(n!)
O(2
n
)
CS32: Introduction to Computer Science II
Winter 2009
Week 10, Page 1/6
This preview has intentionally blurred sections. Sign up to view the full version.
View Full Document Binary Trees
6. Write a recursive function that counts the number of nodes in a binary tree. Use the following structure.
struct Node
{
int val;
Node* left;
Node* right;
};
int nodeCount(Node* root)
{
}
7. Write a oneline function that returns you the number of edges in a binary tree, using the function you
defined above.
This is the end of the preview. Sign up
to
access the rest of the document.
This note was uploaded on 11/07/2009 for the course CS 32 taught by Professor Davidsmallberg during the Winter '08 term at UCLA.
 Winter '08
 DavidSmallBerg
 Computer Science

Click to edit the document details