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.ht ml
Dec 22, 2015
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
Timings
Class 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)
Text Books
Data Structures and Algorithm Analysis in C
Mark Allen Weiss
Data Structures Using C
Yedidyah Langsam
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
Course ContentCourse Motivation
Mathematical Foundation:
Complexity Analysis:
Data Structures: List, Stacks, Queues
Algorithm: 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
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
Algorithms
Sequence of actions a ``dumb’’ machine can follow
For j=1 to N
print j
Efficient versus Inefficient algorithm
Linear Search Vs Binary Search
Design of Algorithms
You 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
Formal Study of Algorithms
Design of Algorithms
Proving Correctness of Algorithms
Formal study of efficiency of algorithms
Run time
Storage required
Mathematical Foundation
Series 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
Properties of a log Function
logxa = b if xb = 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
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
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.
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.
Fibonacci Numbers
Sequence of numbers, F0 F1 , F2 , F3 ,…….
F0 = 1, F1 = 1, F2 = 2, F3 = 3,…….
Fi = Fi-1 + Fi-2 ,
Will prove that FN < N = (1+sqrt(5))/2
i=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
Proof By Counter Example
Want 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.
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!
Suppose there are finite number of primes, k primes.
(we do not include 1 in primes here)
We know k2.
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.