1 / 11

CPSC 311 Analysis of Algorithms

Explore the lower bounds of comparison-based sorting algorithms in CPSC courses, utilizing decision trees and proof of lemma to determine algorithm efficiency and worst-case scenarios.

Download Presentation

CPSC 311 Analysis of Algorithms

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. CPSC 311Analysis of Algorithms Sorting Lower Bound Prof. Jennifer Welch Fall 2009 CPSC 411, Fall 2008: Set 2

  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. CPSC 411, Fall 2008: Set 2

  3. 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 CPSC 411, Fall 2008: Set 2

  4. 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 Decision Tree Diagram first comparison: check if ai ≤ aj CPSC 411, Fall 2008: Set 2

  5. Insertion Sort 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 CPSC 411, Fall 2008: Set 2

  6. a1 ≤ a2 ? a2 ≤ a3 ? a1 ≤ a3 ? a1 ≤ a3 ? a2 ≤ a3 ? YES NO YES NO NO YES a3 a1 a2 a2 a3 a1 a1 a3 a2 a2 a1 a3 a3 a2 a1 a1 a2 a3 YES NO YES NO Insertion Sort for n = 3 CPSC 411, Fall 2008: Set 2

  7. a1 ≤ a2 ? a2 ≤ a3 ? a1 ≤ a3 ? a1 ≤ a3 ? a2 ≤ a3 ? a3 a1 a2 a2 a1 a3 a3 a2 a1 a2 a3 a1 a1 a3 a2 a1 a2 a3 Insertion Sort for n = 3 YES NO YES NO NO YES YES NO YES NO CPSC 411, Fall 2008: Set 2

  8. 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 CPSC 411, Fall 2008: Set 2

  9. h = 1, 21leaves h = 2, 22leaves h = 3, 23leaves 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. CPSC 411, Fall 2008: Set 2

  10. 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-1)…(2)(1)) ≥ (n/2)log(n/2) by algebra = (n log n) CPSC 411, Fall 2008: Set 2

  11. 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. CPSC 411, Fall 2008: Set 2

More Related