cse220lec1
TRANSCRIPT
-
8/3/2019 cse220lec1
1/23
CSE 220 (Data Structures and
Analysis of Algorithms)
Instructor: Saswati Sarkar ([email protected])
T.A. Dimosthenes Anthomelidis
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.