CPSC 411 Design and Analysis of Algorithms

Slides:



Advertisements
Similar presentations
CPSC 411 Design and Analysis of Algorithms Set 2: Sorting Lower Bound Prof. Jennifer Welch Spring 2011 CPSC 411, Spring 2011: Set 2 1.
Advertisements

Introduction to Algorithms Quicksort
Heapsort O(n lg n) worst case Another design paradigm –Use of a data structure (heap) to manage information during execution of algorithm Comparision-based.
1 Sorting Problem: Given a sequence of elements, find a permutation such that the resulting sequence is sorted in some order. We have already seen: –Insertion.
© 2004 Goodrich, Tamassia Sorting Lower Bound1. © 2004 Goodrich, Tamassia Sorting Lower Bound2 Comparison-Based Sorting (§ 10.3) Many sorting algorithms.
Lecture 5: Linear Time Sorting Shang-Hua Teng. Sorting Input: Array A[1...n], of elements in arbitrary order; array size n Output: Array A[1...n] of the.
CS 253: Algorithms Chapter 8 Sorting in Linear Time Credit: Dr. George Bebis.
Data Structures, Spring 2006 © L. Joskowicz 1 Data Structures – LECTURE 4 Comparison-based sorting Why sorting? Formal analysis of Quick-Sort Comparison.
More sorting algorithms: Heap sort & Radix sort. Heap Data Structure and Heap Sort (Chapter 7.6)
CPSC 668Set 10: Consensus with Byzantine Failures1 CPSC 668 Distributed Algorithms and Systems Fall 2006 Prof. Jennifer Welch.
2 -1 Analysis of algorithms Best case: easiest Worst case Average case: hardest.
© 2004 Goodrich, Tamassia Sorting Lower Bound1. © 2004 Goodrich, Tamassia Sorting Lower Bound2 Comparison-Based Sorting (§ 10.3) Many sorting algorithms.
CPSC 411, Fall 2008: Set 2 1 CPSC 411 Design and Analysis of Algorithms Set 2: Sorting Lower Bound Prof. Jennifer Welch Fall 2008.
CPSC 411, Fall 2008: Set 2 1 CPSC 311 Analysis of Algorithms Sorting Lower Bound Prof. Jennifer Welch Fall 2009.
Sorting Chapter 6. 2 Algorithms to know Insertion Sort Insertion Sort –O(n 2 ) but very efficient on partially sorted lists. Quicksort Quicksort –O(n.
Divide and Conquer Sorting
CSE 326: Data Structures Sorting Ben Lerner Summer 2007.
Sorting Lower Bound Andreas Klappenecker based on slides by Prof. Welch 1.
Analysis of Algorithms CS 477/677
DAST 2005 Week 4 – Some Helpful Material Randomized Quick Sort & Lower bound & General remarks…
Sorting Chapter 6 Chapter 6 –Insertion Sort 6.1 –Quicksort 6.2 Chapter 5 Chapter 5 –Mergesort 5.2 –Stable Sorts Divide & Conquer.
Sorting Lower Bound1. 2 Comparison-Based Sorting (§ 4.4) Many sorting algorithms are comparison based. They sort by making comparisons between pairs of.
CSE 373 Data Structures Lecture 15
1 Time Analysis Analyzing an algorithm = estimating the resources it requires. Time How long will it take to execute? Impossible to find exact value Depends.
Analysis of Algorithms CS 477/677
COSC 3101A - Design and Analysis of Algorithms 6 Lower Bounds for Sorting Counting / Radix / Bucket Sort Many of these slides are taken from Monica Nicolescu,
Sorting 1. Insertion Sort
CSCE 411H Design and Analysis of Algorithms Set 10: Lower Bounds Prof. Evdokia Nikolova* Spring 2013 CSCE 411H, Spring 2013: Set 10 1 * Slides adapted.
Sorting Lower Bounds n Beating Them. Recap Divide and Conquer –Know how to break a problem into smaller problems, such that –Given a solution to the smaller.
SORTING AND ASYMPTOTIC COMPLEXITY Lecture 13 CS2110 – Fall 2009.
Sorting & Lower Bounds Jeff Edmonds York University COSC 3101 Lecture 5.
CSE 250 – Data Structures. Today’s Goals  First review the easy, simple sorting algorithms  Compare while inserting value into place in the vector 
1 Chapter 8-1: Lower Bound of Comparison Sorts. 2 About this lecture Lower bound of any comparison sorting algorithm – applies to insertion sort, selection.
1 CSE 326: Data Structures Sorting by Comparison Zasha Weinberg in lieu of Steve Wolfman Winter Quarter 2000.
Chapter 11 Sorting Acknowledgement: These slides are adapted from slides provided with Data Structures and Algorithms in C++, Goodrich, Tamassia and Mount.
Sorting.
Lecture 2 Sorting.
David Kauchak cs062 Spring 2010
Sorting Lower Bound 4/25/2018 8:49 PM
Decision trees Polynomial-Time
Trees.
CPSC 411 Design and Analysis of Algorithms
Introduction to Algorithms
Quick-Sort 9/13/2018 1:15 AM Quick-Sort     2
CSCE 411 Design and Analysis of Algorithms
Quick-Sort 11/14/2018 2:17 PM Chapter 4: Sorting    7 9
(2,4) Trees 11/15/2018 9:25 AM Sorting Lower Bound Sorting Lower Bound.
Sorting We have actually seen already two efficient ways to sort:
Lower Bound Theory.
Quick-Sort 11/19/ :46 AM Chapter 4: Sorting    7 9
Analysis of Algorithms
CSCE 411 Design and Analysis of Algorithms
(2,4) Trees 12/4/2018 1:20 PM Sorting Lower Bound Sorting Lower Bound.
8/04/2009 Many thanks to David Sun for some of the included slides!
CS200: Algorithm Analysis
Data Structures Sorting Haim Kaplan & Uri Zwick December 2014.
Linear-Time Sorting Algorithms
Quick-Sort 2/23/2019 1:48 AM Chapter 4: Sorting    7 9
CS 3343: Analysis of Algorithms
(2,4) Trees 2/28/2019 3:21 AM Sorting Lower Bound Sorting Lower Bound.
Topic 5: Heap data structure heap sort Priority queue
Lower bound for sorting, radix sort
Heapsort Sorting in place
CPSC 411 Design and Analysis of Algorithms
Sorting and Asymptotic Complexity
David Kauchak cs302 Spring 2012
CS 583 Analysis of Algorithms
The Selection Problem.
Sorting We have actually seen already two efficient ways to sort:
Analysis of Algorithms CS 477/677
Presentation transcript:

CPSC 411 Design and Analysis of Algorithms Set 2: Sorting Lower Bound Prof. Jennifer Welch Spring 2012 CSCE 411, Spring 2012: Set 2

Insertion Sort Review How it works: incrementally build up longer and longer prefix of the array of keys that is in sorted order take the current key, find correct place in sorted prefix, and shift to make room to insert it Finding the correct place relies on comparing current key to keys in sorted prefix Worst-case running time is (n2) CSCE 411, Spring 2012: Set 2

Insertion Sort Demo http://sorting-algorithms.com CSCE 411, Spring 2012: Set 2

Heapsort Review How it works: put the keys in a heap data structure repeatedly remove the min from the heap Manipulating the heap involves comparing keys to each other Worst-case running time is (n log n) CSCE 411, Spring 2012: Set 2

Heapsort Demo http://www.sorting-algorithms.com CSCE 411, Spring 2012: Set 2

Mergesort Review How it works: split the array of keys in half recursively sort the two halves merge the two sorted halves Merging the two sorted halves involves comparing keys to each other Worst-case running time is (n log n) CSCE 411, Spring 2012: Set 2

Mergesort Demo http://www.sorting-algorithms.com CSCE 411, Spring 2012: Set 2

Quicksort Review How it works: choose one key to be the pivot partition the array of keys into those keys < the pivot and those ≥ the pivot recursively sort the two partitions Partitioning the array involves comparing keys to the pivot Worst-case running time is (n2) CSCE 411, Spring 2012: Set 2

Quicksort Demo http://www.sorting-algorithms.com CSCE 411, Spring 2012: Set 2

Comparison-Based Sorting All these algorithms are comparison-based the behavior depends on relative values of keys, not exact values behavior on [1,3,2,4] is same as on [9,25,23,99] Fastest of these algorithms was O(nlog n). We will show that's the best you can get with comparison-based sorting. CSCE 411, Spring 2012: Set 2

Decision Tree Consider any comparison based sorting algorithm Represent its behavior on all inputs of a fixed size with a decision tree Each tree node corresponds to the execution of a comparison Each tree node has two children, depending on whether the parent comparison was true or false Each leaf represents correct sorted order for that path CSCE 411, Spring 2012: Set 2

Decision Tree Diagram first comparison: check if ai ≤ aj YES NO second comparison if ai ≤ aj : check if ak ≤ al second comparison if ai > aj : check if am ≤ ap YES NO YES NO third comparison if ai ≤ aj and ak ≤ al : check if ax ≤ ay CSCE 411, Spring 2012: Set 2

Insertion Sort comparison for j := 2 to n to key := a[j] i := j-1 while i > 0 and a[i] > key do a[i]+1 := a[i] i := i -1 endwhile a[i+1] := key endfor comparison CSCE 411, Spring 2012: Set 2

Insertion Sort for n = 3 a1 ≤ a2 ? YES NO a2 ≤ a3 ? a1 ≤ a3 ? NO YES CSCE 411, Spring 2012: Set 2

Insertion Sort for n = 3 a1 ≤ a2 ? YES NO a2 ≤ a3 ? a1 ≤ a3 ? YES NO CSCE 411, Spring 2012: Set 2

How Many Leaves? Must be at least one leaf for each permutation of the input otherwise there would be a situation that was not correctly sorted Number of permutations of n keys is n!. Idea: since there must be a lot of leaves, but each decision tree node only has two children, tree cannot be too shallow depth of tree is a lower bound on running time CSCE 411, Spring 2012: Set 2

Key Lemma Height of a binary tree with n! leaves is (n log n). Proof: Maximum number of leaves in a binary tree with height h is 2h. h = 3, 23 leaves h = 2, 22 leaves h = 1, 21 leaves CSCE 411, Spring 2012: Set 2

Proof of Lemma Let h be height of decision tree. Number of leaves in decision tree, which is n!, is at most 2h. 2h ≥ n! h ≥ log(n!) = log(n(n-1)(n-2)…(2)(1)) ≥ (n/2)log(n/2) by algebra = (n log n) CSCE 411, Spring 2012: Set 2

Finishing Up Any binary tree with n! leaves has height (n log n). Decision tree for any c-b sorting alg on n keys has height (n log n). Any c-b sorting alg has at least one execution with (n log n) comparisons Any c-b sorting alg has (n log n) worst-case running time. CSCE 411, Spring 2012: Set 2