Download presentation

Presentation is loading. Please wait.

1
CSSE221: Software Dev. Honors Day 23 Announcements: Announcements: Pass in yesterday’s capsule quiz Pass in yesterday’s capsule quiz Homework 7 electronic parts: grades in Angel Homework 7 electronic parts: grades in Angel Programming mini-exam Thursday Programming mini-exam Thursday Simulation project feedback in repository Simulation project feedback in repository Any deliverables missing on Thursday will get a 0. Any deliverables missing on Thursday will get a 0.

2
This week: Simulation Project Monday: Monday: Bubble, Selection, and Insertion Sorts Bubble, Selection, and Insertion Sorts File I/O (capsule) File I/O (capsule) Tuesday: Tuesday: Analysis of sorting algorithms Analysis of sorting algorithms Mergesort (capsule) Mergesort (capsule) Thursday: Thursday: Programming mini-exam Programming mini-exam Time to work on project Time to work on project

3
Analyzing Sorts Def: An inversion is any pair of inputs that are out of order: Def: An inversion is any pair of inputs that are out of order: [5,8,3,9,6] has 4 inversions: (5,3), (8,3), (8,6), (9,6) [5,8,3,9,6] has 4 inversions: (5,3), (8,3), (8,6), (9,6) [5,3,8,9,6] has 3 inversions: (5,3), (8,6), (9,6) [5,3,8,9,6] has 3 inversions: (5,3), (8,6), (9,6) Swapping a pair of adjacent elements removes exactly one inversion Swapping a pair of adjacent elements removes exactly one inversion Worst case? Worst case? all n(n-1)/2 pairs are out of order, so n(n-1)/2 swaps. all n(n-1)/2 pairs are out of order, so n(n-1)/2 swaps. Average case: Average case: Consider any array, a, and its reverse, r. Then inv(a) + inv(r) = n(n-1)/2 Consider any array, a, and its reverse, r. Then inv(a) + inv(r) = n(n-1)/2 So on average, n(n-1)/4 inversions. So on average, n(n-1)/4 inversions.

4
Demo Conclusion: if few inversions (almost sorted), then few swaps Conclusion: if few inversions (almost sorted), then few swaps Let’s look at a quick demo of selection, bubble, and insertion sorts… Let’s look at a quick demo of selection, bubble, and insertion sorts… Completely random data Completely random data Nearly sorted data Nearly sorted data

5
How do we beat O(n 2 )? Enter our beloved capsule group… Enter our beloved capsule group…

6
Mergesort Analysis mergesort(a, start, end) mergesort(a, start, end) mid = (start + end) / 2 mid = (start + end) / 2 if (start < end) if (start < end) mergesort(a, start, mid) mergesort(a, start, mid) mergesort(a, mid+1, end) mergesort(a, mid+1, end) merge(a, start, mid, end) merge(a, start, mid, end) Idea: how deep is the recursion? How much work is done in each level of the recursion? Idea: how deep is the recursion? How much work is done in each level of the recursion?

7
Analysis of merge() Merging two sorted arrays of length O(n/2) each is O(n) Merging two sorted arrays of length O(n/2) each is O(n) Why? Why? After each comparison, one element is moved into the sorted array, so there are only n comparisons After each comparison, one element is moved into the sorted array, so there are only n comparisons

9
Visual analysis

10
Putting it all together: Should I sort before I search? No. I’m too lazy Initial cost = ______ Initial cost = ______ Need to use sequential search Average cost per search: _____ Average cost per search: _____ Yes. It’s worth the cost Initial cost =_______ Now I can use binary search Average cost per search: _____ If we had an array with 1M elements and anticipate searching it 1M times, which approach is faster?

11
Putting it all together: Should I sort before I search? No. I’m too lazy Initial cost = 0 Initial cost = 0 Need to use sequential search Average cost per search: n/2 Average cost per search: n/2 Yes. It’s worth the cost Initial cost = nlog(n) Now I can use binary search Average cost per search: log(n) If we had an array with 1M elements and anticipate searching it 1M times, which approach is faster? sort!

Similar presentations

© 2024 SlidePlayer.com Inc.

All rights reserved.

To make this website work, we log user data and share it with processors. To use this website, you must agree to our Privacy Policy, including cookie policy.

Ads by Google