Lecture 30 CSE 331 Nov 12, 2012.

Slides:



Advertisements
Similar presentations
A simple example finding the maximum of a set S of n numbers.
Advertisements

Lectures on Recursive Algorithms1 COMP 523: Advanced Algorithmic Techniques Lecturer: Dariusz Kowalski.
1 Divide & Conquer Algorithms. 2 Recursion Review A function that calls itself either directly or indirectly through another function Recursive solutions.
Lecture 30 CSE 331 Nov 8, HW 7 due today Place Q1, Q2 and Q3 in separate piles I will not accept HWs after 1:15pm DO NOT FORGET TO WRITE DOWN YOUR.
1 Divide-and-Conquer CSC401 – Analysis of Algorithms Lecture Notes 11 Divide-and-Conquer Objectives: Introduce the Divide-and-conquer paradigm Review the.
Lecture 30 CSE 331 Nov 13, To be strictly enforced For the rest of the semester on Fridays SUBMIT your HOMEWORKS by 1:10 PM.
Lecture 3 Nearest Neighbor Algorithms Shang-Hua Teng.
Lecture 28 CSE 331 Nov 9, Flu and HW 6 Graded HW 6 at the END of the lecture If you have the flu, please stay home Contact me BEFORE you miss a.
Divide-and-Conquer1 7 2  9 4   2  2 79  4   72  29  94  4.
Divide-and-Conquer1 7 2  9 4   2  2 79  4   72  29  94  4.
CSE 421 Algorithms Richard Anderson Lecture 12 Recurrences.
Lecture 32 CSE 331 Nov 18, HW 8 solutions Friday.
Lecture 31 CSE 331 Nov 16, Jeff is out of town this week No regular recitation or Jeff’s normal office hours I’ll hold extra Question sessions Mon,
Lecture 34 CSE 331 Nov 19, HW 9 due today Q1 in one pile and Q 2+3 in another I will not take any HW after 1:15pm.
CS 104 Introduction to Computer Science and Graphics Problems Data Structure & Algorithms (3) Recurrence Relation 11/11 ~ 11/14/2008 Yang Song.
Lecture 32 CSE 331 Nov 15, Feedback Forms Link for the survey on the blog.
Lecture 33 CSE 331 Nov 17, Online office hours Alex will host the office hours.
CSE 421 Algorithms Richard Anderson Lecture 11 Recurrences.
Lecture 30 CSE 331 Nov 10, Online Office Hours
Lecture 29 CSE 331 Nov 11, To be strictly enforced For the rest of the semester on Fridays SUBMIT your HOMEWORKS by 1:10 PM.
1 CSE 417: Algorithms and Computational Complexity Winter 2001 Lecture 5 Instructor: Paul Beame TA: Gidon Shavit.
Unit 1. Sorting and Divide and Conquer. Lecture 1 Introduction to Algorithm and Sorting.
Arithmetic.
Divide-and-Conquer 7 2  9 4   2   4   7
Divide & Conquer  Themes  Reasoning about code (correctness and cost)  recursion, induction, and recurrence relations  Divide and Conquer  Examples.
Lecture 28 CSE 331 Nov 9, Mini project report due WED.
CSE 421 Algorithms Lecture 15 Closest Pair, Multiplication.
Foundations II: Data Structures and Algorithms
1 Algorithms CSCI 235, Fall 2015 Lecture 7 Recurrences II.
Lecture 32 CSE 331 Nov 16, 2016.
Divide-and-Conquer 6/30/2018 9:16 AM
Lecture 26 CSE 331 Nov 2, 2016.
CS 3343: Analysis of Algorithms
Growth Functions Algorithms Lecture 8
CS 3343: Analysis of Algorithms
Chapter 2: Getting Started
CS 3343: Analysis of Algorithms
Punya Biswas Lecture 15 Closest Pair, Multiplication
Lecture 30 CSE 331 Nov 11, 2016.
Lecture 26 CSE 331 Nov 1, 2017.
Divide-and-Conquer 7 2  9 4   2   4   7
Richard Anderson Lecture 11 Recurrences
Lecture 27 CSE 331 Nov 3, 2017.
CSE 373 Data Structures and Algorithms
Lecture 32 CSE 331 Nov 14, 2011.
Lecture 29 CSE 331 Nov 8, 2017.
Lecture 28 CSE 331 Nov 7, 2016.
CSE 2010: Algorithms and Data Structures
Introduction to Algorithms
Lecture 32 CSE 331 Nov 15, 2017.
Lecture 30 CSE 331 Nov 10, 2017.
Lecture 27 CSE 331 Oct 31, 2014.
Lecture 28 CSE 331 Nov 7, 2012.
Lecture 27 CSE 331 Nov 2, 2010.
Lecture 31 CSE 331 Nov 14, 2012.
Lecture 31 CSE 331 Nov 12, 2010.
Divide-and-Conquer 7 2  9 4   2   4   7
Divide & Conquer Algorithms
Lecture 15, Winter 2019 Closest Pair, Multiplication
Richard Anderson Lecture 14 Divide and Conquer
Lecture 31 CSE 331 Nov 11, 2011.
Lecture 30 CSE 331 Nov 9, 2011.
Richard Anderson Lecture 14 Divide and Conquer
Divide-and-Conquer 7 2  9 4   2   4   7
Lecture 15 Closest Pair, Multiplication
Richard Anderson Lecture 12, Winter 2019 Recurrences
Lecture 27 CSE 331 Nov 4, 2016.
Richard Anderson Lecture 12 Recurrences
Lecture 27 CSE 331 Nov 1, 2013.
Presentation transcript:

Lecture 30 CSE 331 Nov 12, 2012

Another feedback Writing up the solutions takes disproportionately long! Yes, writing well is very hard to do

Mergesort algorithm Input: a1, a2, …, an Output: Numbers in sorted order MergeSort( a, n ) If n = 1 return the order a1 aL = a1,…, a[n/2] aR = a[n/2]+1,…, an return MERGE ( MergeSort(aL, [n/2]), MergeSort(aR, n-[n/2]) ) If n = 2 return the order min(a1,a2); max(a1,a2)

Inductive step follows from correctness of MERGE Input: a1, a2, …, an Output: Numbers in sorted order By induction on n MergeSort( a, n ) If n = 2 return the order min(a1,a2); max(a1,a2) aL = a1,…, a[n/2] aR = a[n/2]+1,…, an return MERGE ( MergeSort(aL, [n/2]), MergeSort(aR, n-[n/2]) ) If n = 1 return the order a1 Inductive step follows from correctness of MERGE

Run time recurrence T(n) ≤ c if n ≤ 2 2*T(n/2) + c*n otherwise

Today’s agenda Solve the recurrence Multiplying two integers

Divide and Conquer Divide up the problem into at least two sub-problems Recursively solve the sub-problems “Patch up” the solutions to the sub-problems for the final solution

Improvements on a smaller scale Greedy algorithms: exponential  poly time (Typical) Divide and Conquer: O(n2)  asymptotically smaller running time

Multiplying two numbers Given two numbers a and b in binary a=(an-1,..,a0) and b = (bn-1,…,b0) Running time of primary school algorithm? Compute c = a x b

The current algorithm scheme Shift by O(n) bits Adding O(n) bit numbers Mult over n bits a  b = a1b1 22[n/2] + (a1b0+a0b1)2[n/2] + a0b0 Multiplication over n/2 bit inputs T(n) is O(n2) T(n) ≤ 4T(n/2) + cn T(1) ≤ c