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 29 th January
Cumulative Final: 40% 1 Midterm: 30% (last class before spring break)
Course Content Course 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
2 review lectures No class on April 25 No class on either April 23 or April 27 (will confirm later)
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
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 + r 2 + r 3 +………r N-1 = (1- r N )/(1-r), (geometric series) 1/(1-r), r < 1, large N Sum of squares: 1 + 2 2 + 3 2 +………N 2 = N(N + 1)(2N + 1)/6
Properties of a log Function log x a = 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 a b = b log a log b a = log c a/ log c b a log n = n log a
a mn = (a m ) n = (a n ) m a m+n = a m a n (2 n) 0.5 (n/e) n n (2 n) 0.5 (n/e) n + (1/12n)
We will deduce the value of the descending geometric series: N + Nr + Nr 2 + Nr 3 +………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, F 0 F 1, F 2, F 3,……. F 0 = 1, F 1 = 1, F 2 = 2, F 3 = 3,……. F i = F i-1 + F i-2,
Will prove that F N < N = (1+sqrt(5))/2 i=1 N-2 F i = F N - 2 N > 2 (Correction) Holds for N = 1 Let it hold for 1,2,….N F N+1 = F N + F N-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 F N N 2 ? No, F 11 = 144 However, if you were to show that F N N 2 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 k 2. Let the primes be P 1, P 2, ……… P k Z = P 1 P 2 ……… P k + 1 Z is not divisible by P 1, P 2, ……… P k Z is greater than P 1, P 2, ……… P k 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.