Algorithms and Data Structures Lecture III

Slides:



Advertisements
Similar presentations
Algorithms and Data Structures Lecture III
Advertisements

Divide and Conquer (Merge Sort)
A simple example finding the maximum of a set S of n numbers.
Data Structures Lecture 9 Fang Yu Department of Management Information Systems National Chengchi University Fall 2010.
5/5/20151 Analysis of Algorithms Lecture 6&7: Master theorem and substitution method.
Comp 122, Spring 2004 Divide and Conquer (Merge Sort)
September 12, Algorithms and Data Structures Lecture III Simonas Šaltenis Nykredit Center for Database Research Aalborg University
1 Merge Sort Review of Sorting Merge Sort. 2 Sorting Algorithms Selection Sort uses a priority queue P implemented with an unsorted sequence: –Phase 1:
Divide-and-Conquer Recursive in structure –Divide the problem into several smaller sub-problems that are similar to the original but smaller in size –Conquer.
11 Computer Algorithms Lecture 6 Recurrence Ch. 4 (till Master Theorem) Some of these slides are courtesy of D. Plaisted et al, UNC and M. Nicolescu, UNR.
Analysis of Algorithms CS 477/677 Sorting – Part B Instructor: George Bebis (Chapter 7)
Algorithms Recurrences. Definition – a recurrence is an equation or inequality that describes a function in terms of its value on smaller inputs Example.
CS Section 600 CS Section 002 Dr. Angela Guercio Spring 2010.
CS 253: Algorithms Chapter 7 Mergesort Quicksort Credit: Dr. George Bebis.
Lecture 3 Nearest Neighbor Algorithms Shang-Hua Teng.
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.
Analysis of Algorithms CS 477/677 Instructor: Monica Nicolescu.
Data Structures, Spring 2004 © L. Joskowicz 1 Data Structures – LECTURE 3 Recurrence equations Formulating recurrence equations Solving recurrence equations.
Lecture 2: Divide and Conquer I: Merge-Sort and Master Theorem Shang-Hua Teng.
Data Structures, Spring 2006 © L. Joskowicz 1 Data Structures – LECTURE 3 Recurrence equations Formulating recurrence equations Solving recurrence equations.
CS3381 Des & Anal of Alg ( SemA) City Univ of HK / Dept of CS / Helena Wong 4. Recurrences - 1 Recurrences.
Updates HW#1 has been delayed until next MONDAY. There were two errors in the assignment Merge sort runs in Θ(n log n). Insertion sort runs in Θ(n2).
Recurrences Part 3. Recursive Algorithms Recurrences are useful for analyzing recursive algorithms Recurrence – an equation or inequality that describes.
Recurrences The expression: is a recurrence. –Recurrence: an equation that describes a function in terms of its value on smaller functions Analysis of.
Recurrences The expression: is a recurrence. –Recurrence: an equation that describes a function in terms of its value on smaller functions BIL741: Advanced.
October 1, Algorithms and Data Structures Lecture III Simonas Šaltenis Nykredit Center for Database Research Aalborg University
Analysis of Algorithms
Analyzing Recursive Algorithms A recursive algorithm can often be described by a recurrence equation that describes the overall runtime on a problem of.
MCA 202: Discrete Mathematics Instructor Neelima Gupta
Divide-and-Conquer1 7 2  9 4   2  2 79  4   72  29  94  4.
1 Computer Algorithms Lecture 7 Master Theorem Some of these slides are courtesy of D. Plaisted, UNC and M. Nicolescu, UNR.
Project 2 due … Project 2 due … Project 2 Project 2.
Divide and Conquer Andreas Klappenecker [based on slides by Prof. Welch]
DR. NAVEED AHMAD DEPARTMENT OF COMPUTER SCIENCE UNIVERSITY OF PESHAWAR LECTURE-5 Advance Algorithm Analysis.
The Selection Problem. 2 Median and Order Statistics In this section, we will study algorithms for finding the i th smallest element in a set of n elements.
10/25/20151 CS 3343: Analysis of Algorithms Lecture 6&7: Master theorem and substitution method.
September 17, 2001 Algorithms and Data Structures Lecture II Simonas Šaltenis Nykredit Center for Database Research Aalborg University
Recurrences David Kauchak cs161 Summer Administrative Algorithms graded on efficiency! Be specific about the run times (e.g. log bases) Reminder:
Divide and Conquer Andreas Klappenecker [based on slides by Prof. Welch]
Divide-and-Conquer UNC Chapel HillZ. Guo. Divide-and-Conquer It’s a technique instead of an algorithm Recursive in structure – Divide the problem into.
1Computer Sciences Department. Objectives Recurrences.  Substitution Method,  Recursion-tree method,  Master method.
Recurrences (in color) It continues…. Recurrences When an algorithm calls itself recursively, its running time is described by a recurrence. When an algorithm.
Divide and Conquer Faculty Name: Ruhi Fatima Topics Covered Divide and Conquer Matrix multiplication Recurrence.
Data Structures and Algorithms Roberto Sebastiani - Week 03 - B.S. In Applied Computer.
Equal costs at all levels
Analysis of Algorithms CS 477/677
Introduction to Algorithms
Recursion Ali.
Mathematical Foundations (Solving Recurrence)
UNIT- I Problem solving and Algorithmic Analysis
Divide-and-Conquer 6/30/2018 9:16 AM
CS 3343: Analysis of Algorithms
Introduction to Algorithms 6.046J
Divide-and-Conquer 7 2  9 4   2   4   7
Lecture No 6 Advance Analysis of Institute of Southern Punjab Multan
CS 3343: Analysis of Algorithms
Divide and Conquer (Merge Sort)
CS 3343: Analysis of Algorithms
Divide-and-Conquer 7 2  9 4   2   4   7
Trevor Brown CS 341: Algorithms Trevor Brown
Introduction To Algorithms
Algorithms Recurrences.
The Selection Problem.
Design and Analysis of Algorithms
Divide-and-Conquer 7 2  9 4   2   4   7
Algorithms and Data Structures Lecture III
Divide-and-Conquer 7 2  9 4   2   4   7
Algorithms and Data Structures Lecture II
Presentation transcript:

Algorithms and Data Structures Lecture III Simonas Šaltenis Nykredit Center for Database Research Aalborg University simas@cs.auc.dk September 12, 2002

This Lecture Divide-and-conquer technique for algorithm design. Example – the merge sort. Writing and solving recurrences September 12, 2002

Divide and Conquer Divide-and-conquer method for algorithm design: Divide: If the input size is too large to deal with in a straightforward manner, divide the problem into two or more disjoint subproblems Conquer: Use divide and conquer recursively to solve the subproblems Combine: Take the solutions to the subproblems and “merge” these solutions into a solution for the original problem September 12, 2002

Merge Sort Algorithm Divide: If S has at least two elements (nothing needs to be done if S has zero or one elements), remove all the elements from S and put them into two sequences, S1 and S2 , each containing about half of the elements of S. (i.e. S1 contains the first én/2ù elements and S2 contains the remaining ën/2û elements). Conquer: Sort sequences S1 and S2 using Merge Sort. Combine: Put back the elements into S by merging the sorted sequences S1 and S2 into one sorted sequence September 12, 2002

Merge Sort: Algorithm Merge-Sort(A, p, r) if p < r then q¬(p+r)/2 Merge-Sort(A, p, q) Merge-Sort(A, q+1, r) Merge(A, p, q, r) Merge(A, p, q, r) Take the smallest of the two topmost elements of sequences A[p..q] and A[q+1..r] and put into the resulting sequence. Repeat this, until both sequences are empty. Copy the resulting sequence into A[p..r]. September 12, 2002

MergeSort (Example) - 1 September 12, 2002

MergeSort (Example) - 2 September 12, 2002

MergeSort (Example) - 3 September 12, 2002

MergeSort (Example) - 4 September 12, 2002

MergeSort (Example) - 5 September 12, 2002

MergeSort (Example) - 6 September 12, 2002

MergeSort (Example) - 7 September 12, 2002

MergeSort (Example) - 8 September 12, 2002

MergeSort (Example) - 9 September 12, 2002

MergeSort (Example) - 10 September 12, 2002

MergeSort (Example) - 11 September 12, 2002

MergeSort (Example) - 12 September 12, 2002

MergeSort (Example) - 13 September 12, 2002

MergeSort (Example) - 14 September 12, 2002

MergeSort (Example) - 15 September 12, 2002

MergeSort (Example) - 16 September 12, 2002

MergeSort (Example) - 17 September 12, 2002

MergeSort (Example) - 18 September 12, 2002

MergeSort (Example) - 19 September 12, 2002

MergeSort (Example) - 20 September 12, 2002

MergeSort (Example) - 21 September 12, 2002

MergeSort (Example) - 22 September 12, 2002

Merge Sort Revisited To sort n numbers Strategy if n=1 done! recursively sort 2 lists of numbers ën/2û and én/2ù elements merge 2 sorted lists in Q(n) time Strategy break problem into similar (smaller) subproblems recursively solve subproblems combine solutions to answer September 12, 2002

Recurrences Running times of algorithms with Recursive calls can be described using recurrences A recurrence is an equation or inequality that describes a function in terms of its value on smaller inputs Example: Merge Sort September 12, 2002

Solving Recurrences Repeated substitution method Substitution method Expanding the recurrence by substitution and noticing patterns Substitution method guessing the solutions verifying the solution by the mathematical induction Recursion-trees Master method templates for different classes of recurrences September 12, 2002

Repeated Substitution Method Let’s find the running time of merge sort (let’s assume that n=2b, for some b). September 12, 2002

Repeated Substitution Method The procedure is straightforward: Substitute Expand … Observe a pattern and write how your expression looks after the i-th substitution Find out what the value of i (e.g., lgn) should be to get the base case of the recurrence (say T(1)) Insert the value of T(1) and the expression of i into your expression September 12, 2002

Substitution method September 12, 2002

Substitution Method Achieving tighter bounds September 12, 2002

Substitution Method (2) The problem? We could not rewrite the equality as: in order to show the inequality we wanted Sometimes to prove inductive step, try to strengthen your hypothesis T(n) £ (answer you want) - (something > 0) September 12, 2002

Substitution Method (3) Corrected proof: the idea is to strengthen the inductive hypothesis by subtracting lower-order terms! September 12, 2002

Recursion Tree A recursion tree is a convenient way to visualize what happens when a recurrence is iterated Construction of a recursion tree September 12, 2002

Recursion Tree (2) September 12, 2002

Recursion Tree (3) September 12, 2002

Master Method The idea is to solve a class of recurrences that have the form a >= 1 and b > 1, and f is asymptotically positive! Abstractly speaking, T(n) is the runtime for an algorithm and we know that a subproblems of size n/b are solved recursively, each in time T(n/b) f(n) is the cost of dividing the problem and combining the results. In merge-sort September 12, 2002

Master Method (2) Split problem into a parts at logbn levels. There are leaves September 12, 2002

Master Method (3) Number of leaves: Iterating the recurrence, expanding the tree yields The first term is a division/recombination cost (totaled across all levels of the tree) The second term is the cost of doing all subproblems of size 1 (total of all work pushed to leaves) September 12, 2002

MM Intuition Three common cases: Running time dominated by cost at leaves Running time evenly distributed throughout the tree Running time dominated by cost at root Consequently, to solve the recurrence, we need only to characterize the dominant term In each case compare with September 12, 2002

MM Case 1 for some constant The work at the leaf level dominates f(n) grows polynomially (by factor ) slower than The work at the leaf level dominates Summation of recursion-tree levels Cost of all the leaves Thus, the overall cost September 12, 2002

MM Case 2 The work is distributed equally throughout the tree and are asymptotically the same The work is distributed equally throughout the tree (level cost) ´ (number of levels) September 12, 2002

MM Case 3 for some constant The work at the root dominates Inverse of Case 1 f(n) grows polynomially faster than Also need a regularity condition The work at the root dominates September 12, 2002

Master Theorem Summarized Given a recurrence of the form The master method cannot solve every recurrence of this form; there is a gap between cases 1 and 2, as well as cases 2 and 3 September 12, 2002

Strategy Extract a, b, and f(n) from a given recurrence Determine Compare f(n) and asymptotically Determine appropriate MT case, and apply Example merge sort September 12, 2002

Examples Binary-search(A, p, r, s): q¬(p+r)/2 if A[q]=s then return q else if A[q]>s then Binary-search(A, p, q-1, s) else Binary-search(A, q+1, r, s) September 12, 2002

Examples (2) September 12, 2002

Examples (3) September 12, 2002

Next Week Sorting QuickSort HeapSort September 12, 2002