Category Archives: Class work

AOA: Order Of Growth

November 2nd, 2015

Screen Shot 2014-10-12 at 11.03.54 PM

Classwork:
Classroom Salon – Videos 2.3 and 2.4

Order-Of_growth
1. Describe the last column for each order-of-growth.

2. Give the code for each of the order-of-growth classifications:
constant, logarithmic, linear, linearithmic, quadratic, and cubic.

3. Give the description and example for each of the order-of-growth classifications.

4. Which of the following order-of-growth classifications represents the maximum number of array accesses used to binary search a sorted array of size N?
a. constant
b. logarithmic
c. linear
d. linearithmic

Theory of Algorithms
1. What is Big Theta used for?
2. What is Big Oh used for?
3. What is Big Omega for?

4. Explain the differences and similarities between the three different sum programs and the three Big notations.

5. What are the 2 caveats mentioned int he video?

Homework:
Complete posted assignments

AOA: function of N

October 28th, 2015

Screen Shot 2014-10-12 at 11.03.54 PM

Classroom Salon: Video 2.3: Order of Growth

Visit edmodo.com:
1.
Quiz
How many accesses does the following code fragment make as a function of N?
(Assume the compiler does not optimize away any array accesses int eh innermost loop)


int sum = 0;
for (int i = 0; i < N ; i++ )
---> for (int j = i + 1; j < N ; j++ ) 
--------> for (int k = 1; k < N ; k = k*2 )
------------> if ( a[i] + a[j] >= a[k]) sum++;


~3N^2
~(3/2)N^2 lgN
~(3/2)N^3
~3N^3

2.
Proposition: Binary search uses at most 1 + lgN compares to search in a sorted array of size N.
Def. T(N) = # compares to binary search in a sorted subarray of size <= N. Binary search recurrence. T(N) <= T(N/2) + 1 for N>1, with T(1) = 1
Give an example to show
T(N) <= T(N/2) + 1 for N>1, with T(1) = 1
Show how 1 + 1 + … + 1 become 1 + lg N

3.
Write a program, YI_Better3Sum.java, so its order of growth is N^2 log N

4.
Create a table to compare the execution run time from the original 3-Sum and the Better3Sum.

AOA: Mathematical Models

October 27th, 2015

Screen Shot 2014-10-12 at 11.03.54 PM

Classwork:
Classroom Salon: Video 2.2 Analysis of Algorithms. Mathematical Models. Answer questions, reply to postings, add to posting and vote on answers.
Make sure you have a full set of answers in edmodo.com based on what you learned through the classroom salon discussions on this video.

1. What is defined as Cost of basic operations?
2. What operations would have a constant cost?
3. What operations would have proportional cost?
4. What operations would have N and N^2 cost?
5. what is the frequency of the instructions in the 1-Sum program?
6. How is the frequency of instructions in the 2-Sum different from the 1-Sum?
7. What is the tilde notation?
8. What are the tilde functions for the 2-Sum and the 3-sum?
9. Approximately how many array accesses as a function of input size N for the 3-Sum program?
10. Explain with simplify notation the three examples given for estimating discrete sum.

Homework:
1. Complete work
2. Show mathematically how T(N) is equal to 20.5 seconds when N = 64,000.

AOA: Observations

October 26th, 2015

Screen Shot 2014-10-12 at 11.03.54 PM

Classwork:
Classroom Salon: Video 2.1 Analysis of Algorithms. Observations. Answer questions, reply to postings, add to posting and vote on answers.
Make sure you have a full set of answers in edmodo.com based on what you learned through the classroom salon discussions on this video.

Forum questions and concepts:
1. What is the process used to determine the running time for ThreeSum program?
2. What is the shape of the plot of size versus running time?
3. What is the purpose of finding the log of both variables, size and running time?
4. What is the importance of the regression line?
5. What mathematical model is represented by this regression line? In other words, if you find the inverse of this transformation, what mathematical expression do you get?
5. What is T(N)?
6. What is the Doubling Hypothesis?
7. What are the key effects of the running time of a program?
8. What are the system dependent effects?
9. What do these two types of effect determine in your mathematical model?

Homework: Complete work

Union Find: “is connected to”

October 13th, 2015

PU Book Site
Screen Shot 2014-10-23 at 7.55.21 AM
PU Lectures
Screen Shot 2015-10-13 at 12.54.40 PM
Visit Classroom Salon for videos  1.1, 1.2 and 1.3 and related questions.
Visit edmodo.com to answer the following questions:
1. What are the three assumptions so “is connected to” is an equivalence relation?
2. What are the differences and similarities between the Quick Find and Quick Union operations?

Data Abstractions: Rational numbers

October 8th, 2015

Screen Shot 2014-09-15 at 8.43.34 PM

An immutable data type has the property that the value of an object never changes once constructed.

An assertion is a boolean expression that you are affirming is true at that point in the program.

Use Creative Problem Rational numbers as a template to implement Complex.java as an immutable data type that supports addition, subtraction, and multiplication.

Challenge: implement the division operation.

Homework:
Read more on Asserstions and Inmutability.

 

 

 

 

Algorithms, 4th Edition by Robert Sedgewick and Kevin Wayne, Addison-Wesley Professional, 2011, ISBN 0-321-57351-X

Iterator and ReverseArrayIterator

September 30th, 2014

Classwork:
Visit the Classroom Salon
1. How does an iterator compare to a for each construct?
2. What must a collection implement to an iterable collection?
3. What methods must the Iterator class include? Elaborate your answer.
4. What mechanism does java use to enable/enforce the implementation of these methods?
5. Why are Iterators generic?
6. How is the ReverseArrayIterator implemented?
7. What is an iterator?
8. What is the implementation of the Iterator interface?
9. How is the ReverseArrayIterator implemented?
10. Why are the methods implemented in a nested class within client classes?
11. What two cases should throw exceptions to conform to the Iterator specification?
12. Why aren’t these two exceptions implemented?
13. Is it necessary to import Iterable? Iterator?

Homework:
Write a stack client Parentheses.java that reads in a text stream from standard input and uses a stack to determine whether its parentheses are properly balanced. For example, your program should print true for [()]{}{[()()]()} and false for [(]).