cse220lec1

Upload: srikanth-sri

Post on 06-Apr-2018

222 views

Category:

Documents


0 download

TRANSCRIPT

  • 8/3/2019 cse220lec1

    1/23

    CSE 220 (Data Structures and

    Analysis of Algorithms)

    Instructor: Saswati Sarkar ([email protected])

    T.A. Dimosthenes Anthomelidis

    ([email protected])

    Course Web Page:

    http://www.seas.upenn.edu/~swati/cse220.html

  • 8/3/2019 cse220lec1

    2/23

    TimingsClass MWF: 12-1, 224 Moore

    Instructor Office Hours: 11-12, Friday, 360 Moore (correction)

    1-2 Wednesday 360 Moore

    T.A. Office Hours: Monday 11-12, Friday 1-2, 329 Pender

    Recital: Wednesday 5-6 (Moore 216)

  • 8/3/2019 cse220lec1

    3/23

    Text BooksData Structures and Algorithm Analysis in C

    Mark Allen Weiss

    Data Structures Using C

    Yedidyah Langsam

  • 8/3/2019 cse220lec1

    4/23

    PrerequisitesKnowledge of C

    CSE 260?

  • 8/3/2019 cse220lec1

    5/23

    Grading

    Weekly Homeworks (30%)

    Posted every Monday

    Due Next Monday before class (solution posted after

    class)

    No consultation allowed

    No late submission accepted

    First Homework will be posted on 29th January

  • 8/3/2019 cse220lec1

    6/23

    Cumulative Final: 40%

    1 Midterm: 30% (last class before spring break)

  • 8/3/2019 cse220lec1

    7/23

    Course Content

    Course MotivationMathematical Foundation:

    Complexity Analysis:

    Data Structures: List, Stacks, QueuesAlgorithm: Searching and Trees

    Sorting and Heaps

    Graph Algorithms (Depth first Search,

    Breadth First Search, Topological sort,

    Shortest path algorithm, Spanning Tree

    Algorithm)

    Computability and Complexity

  • 8/3/2019 cse220lec1

    8/23

    2 review lectures

    No class on April 25

    No class on either April 23 or April 27 (will confirm

    later)

  • 8/3/2019 cse220lec1

    9/23

    Course Motivattion

    Need to run computer programs efficiently!

    Computer program:

    Accepts Input (Data)Performs a Sequence of action with the

    input

    Generates Output (Data)

    Efficient Management of Data

    (Data Structures)

    Efficient Sequence of Actions

    Algorithms

  • 8/3/2019 cse220lec1

    10/23

    AlgorithmsSequence of actions a ``dumb machine can follow

    For j=1 to N

    print j

    Efficient versus Inefficient algorithm

    Linear Search Vs Binary Search

  • 8/3/2019 cse220lec1

    11/23

    Design of AlgorithmsYou have a problem to solve

    Design an efficient algorithm

    Use good data structures

    Show that your algorithm works!

    Prove its correctness

    Study the efficiency of your algorithm

  • 8/3/2019 cse220lec1

    12/23

    Formal Study of Algorithms

    Design of Algorithms

    Proving Correctness of Algorithms

    Formal study of efficiency of algorithms

    Run time

    Storage required

  • 8/3/2019 cse220lec1

    13/23

    Mathematical FoundationSeries and summation:

    1 + 2 + 3 + . N = N(N+1)/2 (arithmetic series)

    1 + r2 + r3 +rN-1 = (1- rN)/(1-r), (geometric series)

    $ 1/(1-r) , r < 1, large N

    Sum of squares:

    1 + 22 + 32 +N2 = N(N + 1)(2N + 1)/6

  • 8/3/2019 cse220lec1

    14/23

    Properties of a log Functionlogxa = b if x

    b = a

    (we will use base 2 mostly, but may use

    other bases occasionally)

    Will encounter log functions again and again!

    log n bits needed to encode n messages.

    log (ab ) = log a + log b

    log (a/b ) = log a - log b

    log ab = b log a

    logba = logca/ logcb

    alog n = nlog a

  • 8/3/2019 cse220lec1

    15/23

  • 8/3/2019 cse220lec1

    16/23

    We will deduce the value of the descending geometric

    series:

    N + Nr + Nr2 + Nr3 +1

    Example: N + N/2 + N/4 + + 1

    The summation equals (N-r)/(1-r)

    For r = 2, this is 2N - 1

  • 8/3/2019 cse220lec1

    17/23

    Proof By Induction

    Prove that a property holds for input size 1

    Assume that the property holds for input size

    1,2,n. Show that the property holds for input

    size n+1.

    Then, the property holds for all input sizes, n.

  • 8/3/2019 cse220lec1

    18/23

    Prove that the sum of 1+2+..+n = n(n+1)/2

    Holds for n = 1

    Let it hold for 1,2..n

    1+2+.+n = n(n+1)/2

    1+2+.+n+(n+1) = n(n+1)/2 + (n+1)

    = (n+1)(n+2)/2.

  • 8/3/2019 cse220lec1

    19/23

    Fibonacci NumbersSequence of numbers, F0 F1 , F2 , F3 ,.

    F0 = 1, F1 = 1, F2 = 2, F3 = 3,.

    Fi = Fi-1 + Fi-2 ,

  • 8/3/2019 cse220lec1

    20/23

    Will prove that FN < *N * = (1+sqrt(5))/2

    7i=1N-2 Fi = FN - 2 N > 2 (Correction)

    Holds for N = 1

    Let it hold for 1,2,.N

    FN+1 = FN + FN-1

    < *N + *N-1

    = *N-1 (1 + * )

    = *N-1*2

    = *N+1

  • 8/3/2019 cse220lec1

    21/23

    Proof By Counter ExampleWant to prove something is not true!

    Give an example to show that it does not hold!

    Is FN N2 ?

    No, F11 = 144

    However, if you were to show that FN N2 then you

    need to show for all N, and not just one number.

  • 8/3/2019 cse220lec1

    22/23

    Proof By Contradiction

    Suppose, you want to prove something.

    Assume that what you want to prove does not hold.

    Then show that you arrive at an impossiblity.

    Example: The number of prime numbers is not finite!

  • 8/3/2019 cse220lec1

    23/23

    Suppose there are finite number of primes, k primes.

    (we do not include 1 in primes here)

    We know k"2.

    Let the primes be P1, P2 , Pk

    Z = P1 P2 Pk + 1

    Z is not divisible by P1, P2 , Pk

    Z is greater than P1, P2 , Pk Thus Z is not a prime.

    We know that a number is either prime or divisible by primes.

    Hence contradiction.

    So our assumption that there are finite number of primes is

    not true.