Tirgul%202 - PowerPoint PPT Presentation

About This Presentation
Title:

Tirgul%202

Description:

You can't redirect only the standard error, but redirecting to different files ... receives two objects of this class and compares them (similar to CompareTo ... – PowerPoint PPT presentation

Number of Views:21
Avg rating:3.0/5.0
Slides: 20
Provided by: IRIS
Category:
Tags: similar | standard | the | tirgul | to

less

Transcript and Presenter's Notes

Title: Tirgul%202


1
Tirgul 2
  • Subjects of this tirgul
  • Short discussion about standard output/error.
  • Short discussion about comparators.
  • Main subject asymptotic analysis.

2
Default I/O Streams
  • Class System has 3 default streams, available to
    every Java program
  • Input from the keyboard goes into the standard
    input. This is the data member System.in of
    type java.io.InputStream
  • Output (usually to the terminal window) written
    through 2 streams
  • Standard output System.out of type
    java.io.PrintStream
  • Standard error System.err of type
    java.io.PrintStream

3
Default I/O Streams
  • The standard output and error are directed by the
    Operating System. By default - both to the
    terminal.
  • The convention - standard error for error
    messages, standard output for regular output.
  • In UNIX, the user can redirect to a file
  • standard output by adding gt my_out.txt. For
    example java MyClass param1 gt out.txt
  • both to the same file, by adding gt my_out.txt
  • You cant redirect only the standard error, but
    redirecting to different files is possible (by
    outsmarting) (java MyClass gt out.txt) gt err.txt

4
Comparators
  • You already know interface Comparable to compare
    objects.
  • Problem some classes may be compared by
    different criteria (participants may be compared
    by ID, or by name)
  • Solution create a Comparator for this specific
    class.
  • In the constructor specify the comparison
    criteria.
  • The method compare() receives two objects of this
    class and compares them (similar to CompareTo()).
  • Many Java API data structures can compare classes
    either by Comparable or by a Comparator.

5
Asymptotic Analysis
  • Motivation Suppose you want to evaluate two
    programs according to their run-time for inputs
    of size n. The first has run-time ofand the
    second has run-time ofAnswer For small
    inputs, it doesnt matter, both programs will
    finish before you notice. What about (really)
    large inputs?

6
Big - O
  • Definition

    if there exists constants cgt0 and n0 such
    that for all ngtn0,
  • In other words, g(n) bounds f(n) from above (for
    large ns) up to a constant.
  • Examples

7
Big - Omega
  • Definition

    if there exists constants cgt0 and n0 such
    that for all ngtn0,
  • In other words, g(n) bounds f(n) from below (for
    large ns) up to a constant.
  • Examples

8
Big - Theta
  • Definition if
    and
  • In other words, g(n) is a tight estimate of f(n)
    (in asymptotic terms).
  • Examples

9
Example 1(question 2-4-e. in Cormen)
Claim If (for ngtn0)
then Proof Take . Thus for
ngtn0, Note if there is no such for f(n)
then the claim is not true take for example f(n)
1/n. For any constant c, take ngtc and so
f(n) gt (c/n)f(n) c (f(n))2
10
Example 2(question 2-4-d. in Cormen)
  • Does imply
  • Answer No. For example, Then,
    so but, for any constant
    cso

11
Summations(from Cormen, ex. 3.2-2., page 52)
  • note how we got rid of the integer rounding
  • The first term is n so the sum is also
  • Its an example how the largest item dominates
    the growth of the term in an exponential
    decrease/increase.

12
Summations (example 2)(Cormen, ex. 3.1-a., page
52)
  • (r is a constant)
    note that
  • But it seems that we can do better by tightening
    our analysis a bit more...

13
Example 2 (Cont.)
  • For an even n
  • For an odd n
  • Thus so our
    upper bound was tight!

14
Recurrences
  • What is the running time of the Towers of Hanoi
    ??
  • Reminder
  • We can express the running-time as a
    recurrence h(n) 2h(n-1) 1 h(1) 1
  • How do we solve this ?

H(s,t,m,k) if (k gt 1) H(s,m,t,k-1)
moveDisk(s,t) H(m,t,s,k-1) else
moveDisk(s,t)
15
Step 1 guessing the solution
  • h(n) 2h(n-1) 1
  • 22h(n-2)1 1 4h(n-2) 3
    42h(n-3)1 3 8h(n-3) 7
  • When repeating k times we get h(n)2k h(n-k)
    (2k - 1)
  • Now take kn-1. Well geth(n) 2n-1
    h(n-(n-1)) 2n-1 - 1 2n-1 2n-1 -1 2n - 1

16
Step 2 proving by induction
  • If we guessed right, it will be easy to prove by
    induction that h(n)2n - 1
  • For n1 h(1) 2-11 (and indeed h(1)1)
  • Suppose h(n-1) 2n-1 - 1. Then, h(n) 2h(n-1)
    1 2(2n-1 - 1) 1 2n -2 1 2n
    -1
  • So we conclude that h(n) O(2n)

17
Another Example
  • And we get T(n) k T(n/k)(k-1)For kn we get
    T(n) n T(1)n-12n-1Now proving by induction is
    very simple.
  • Another way guess right away T(n) lt c n - b
    (for some b and c we dont know yet), and try to
    prove by inductionFor n1 T(1)c-b, which is
    true when c-b1The induction stepT(n) lt 2
    (c(n/2) - b) 1 c n - 2b 1 lt c n - b(the
    last step is true if bgt1). Conclusion T(n)
    O(n)

T(n) 2T(n/2) 1 2 (2T(n/4) 1) 1
4T(n/4) 3 4 (2T(n/8) 1) 3 8T(n/8) 7
T(n) 2 T(n/2) 1 T(1) 1
18
Common errors
  • A precise guess is important for the induction to
    workh(n) 2n - 1, and not just h(n)O(2n) or
    h(n)2n.
  • For example, the method from the previous
    slideIf we guess just T(n)lt cn the induction
    step wont work. Lets try by induction
    T(n/2) lt c(n/2) T(n) 2T(n/2) 1 c n 1 gt
    c n (!!!)
  • Notice that it is not correct to sayc n 1
    O(n) so we proved T(n)O(n).The induction step
    must be precise. If guessingT(n) lt cn then this
    is what you have to show.

19
Recursion Trees
The recursion tree for the towers of Hanoi
  • For each level we write the time added due to
    this level. In Hanoi, each recursive call adds
    one operation (plus the recursion). Thus the
    total is
Write a Comment
User Comments (0)
About PowerShow.com