faster sorting methods chapter 9 copyright ©2012 by pearson education, inc. all rights reserved
TRANSCRIPT
![Page 1: Faster Sorting Methods Chapter 9 Copyright ©2012 by Pearson Education, Inc. All rights reserved](https://reader035.vdocuments.net/reader035/viewer/2022062305/56649d215503460f949f5f92/html5/thumbnails/1.jpg)
Faster Sorting Methods
Chapter 9
Copyright ©2012 by Pearson Education, Inc. All rights reserved
![Page 2: Faster Sorting Methods Chapter 9 Copyright ©2012 by Pearson Education, Inc. All rights reserved](https://reader035.vdocuments.net/reader035/viewer/2022062305/56649d215503460f949f5f92/html5/thumbnails/2.jpg)
Contents
• Merge Sort Merging Arrays Recursive Merge Sort The Efficiency of Merge Sort Iterative Merge Sort Merge Sort in the Java Class Library
Copyright ©2012 by Pearson Education, Inc. All rights reserved
![Page 3: Faster Sorting Methods Chapter 9 Copyright ©2012 by Pearson Education, Inc. All rights reserved](https://reader035.vdocuments.net/reader035/viewer/2022062305/56649d215503460f949f5f92/html5/thumbnails/3.jpg)
Contents
• Quick Sort The Efficiency of Quick Sort Creating the Partition Java Code for Quick Sort Quick Sort in the Java Class Library
• Radix Sort Pseudocode for Radix Sort The Efficiency of Radix Sort
• Comparing the AlgorithmsCopyright ©2012 by Pearson Education, Inc. All rights reserved
![Page 4: Faster Sorting Methods Chapter 9 Copyright ©2012 by Pearson Education, Inc. All rights reserved](https://reader035.vdocuments.net/reader035/viewer/2022062305/56649d215503460f949f5f92/html5/thumbnails/4.jpg)
Objectives
• Sort array into ascending order using merge sort quick sort radix sort
• Assess efficiency of a sort and discuss relative efficiencies of various methods
Copyright ©2012 by Pearson Education, Inc. All rights reserved
![Page 5: Faster Sorting Methods Chapter 9 Copyright ©2012 by Pearson Education, Inc. All rights reserved](https://reader035.vdocuments.net/reader035/viewer/2022062305/56649d215503460f949f5f92/html5/thumbnails/5.jpg)
Merge Sort
• Divide array into two halves Sort the two halves Merge them into one sorted array
• Uses strategy of “divide and conquer” Divide problem up into two or more distinct,
smaller tasks
• Good application for recursion
Copyright ©2012 by Pearson Education, Inc. All rights reserved
![Page 6: Faster Sorting Methods Chapter 9 Copyright ©2012 by Pearson Education, Inc. All rights reserved](https://reader035.vdocuments.net/reader035/viewer/2022062305/56649d215503460f949f5f92/html5/thumbnails/6.jpg)
Figure 9-1 Merging two sorted arrays into one sorted array
Copyright ©2012 by Pearson Education, Inc. All rights reserved
![Page 7: Faster Sorting Methods Chapter 9 Copyright ©2012 by Pearson Education, Inc. All rights reserved](https://reader035.vdocuments.net/reader035/viewer/2022062305/56649d215503460f949f5f92/html5/thumbnails/7.jpg)
Figure 9-2 The major steps in a merge sort
Copyright ©2012 by Pearson Education, Inc. All rights reserved
![Page 8: Faster Sorting Methods Chapter 9 Copyright ©2012 by Pearson Education, Inc. All rights reserved](https://reader035.vdocuments.net/reader035/viewer/2022062305/56649d215503460f949f5f92/html5/thumbnails/8.jpg)
Merge Sort Algorithm
Copyright ©2012 by Pearson Education, Inc. All rights reserved
![Page 9: Faster Sorting Methods Chapter 9 Copyright ©2012 by Pearson Education, Inc. All rights reserved](https://reader035.vdocuments.net/reader035/viewer/2022062305/56649d215503460f949f5f92/html5/thumbnails/9.jpg)
Algorithm to Merge
Copyright ©2012 by Pearson Education, Inc. All rights reserved
![Page 10: Faster Sorting Methods Chapter 9 Copyright ©2012 by Pearson Education, Inc. All rights reserved](https://reader035.vdocuments.net/reader035/viewer/2022062305/56649d215503460f949f5f92/html5/thumbnails/10.jpg)
Figure 9-3 The effect of the recursive calls and the merges during a merge sort
Copyright ©2012 by Pearson Education, Inc. All rights reserved
![Page 11: Faster Sorting Methods Chapter 9 Copyright ©2012 by Pearson Education, Inc. All rights reserved](https://reader035.vdocuments.net/reader035/viewer/2022062305/56649d215503460f949f5f92/html5/thumbnails/11.jpg)
Figure 9-4 A worst-case merge of two sorted arrays
Copyright ©2012 by Pearson Education, Inc. All rights reserved
![Page 12: Faster Sorting Methods Chapter 9 Copyright ©2012 by Pearson Education, Inc. All rights reserved](https://reader035.vdocuments.net/reader035/viewer/2022062305/56649d215503460f949f5f92/html5/thumbnails/12.jpg)
Efficiency of Merge Sort
• For n = 2k entries In general k levels of recursive calls are made
• Each merge requires at most 3n – 1 comparisons
• Calls to merge do at most 3n – 22 operations
• Can be shown that efficiency is O(n log n)
Copyright ©2012 by Pearson Education, Inc. All rights reserved
![Page 13: Faster Sorting Methods Chapter 9 Copyright ©2012 by Pearson Education, Inc. All rights reserved](https://reader035.vdocuments.net/reader035/viewer/2022062305/56649d215503460f949f5f92/html5/thumbnails/13.jpg)
Iterative Merge Sort
• More difficult than recursive version Recursion controls merging process Iteration would require separate control
• Iterative more efficient in time, space required More difficult to code correctly
Copyright ©2012 by Pearson Education, Inc. All rights reserved
![Page 14: Faster Sorting Methods Chapter 9 Copyright ©2012 by Pearson Education, Inc. All rights reserved](https://reader035.vdocuments.net/reader035/viewer/2022062305/56649d215503460f949f5f92/html5/thumbnails/14.jpg)
Merge Sort in the Java Class Library
• Class Arrays in java.util has sort methods public static void sort(Object[] a) public static void sort(Object[] a, int first, int after)
• These methods use merge sort Merge step skipped if none of entries in left
half, greater than entries in right half
Copyright ©2012 by Pearson Education, Inc. All rights reserved
![Page 15: Faster Sorting Methods Chapter 9 Copyright ©2012 by Pearson Education, Inc. All rights reserved](https://reader035.vdocuments.net/reader035/viewer/2022062305/56649d215503460f949f5f92/html5/thumbnails/15.jpg)
Quick Sort
• Like merge sort, divides arrays into two portions Unlike merge sort, portions not necessarily
halves of the array
• One entry called the “pivot” Pivot in position that it will occupy in final sorted array Entries in positions before pivot less than or equal to
the pivot Entries in positions after pivot are greater than or
equal to the pivot
Copyright ©2012 by Pearson Education, Inc. All rights reserved
![Page 16: Faster Sorting Methods Chapter 9 Copyright ©2012 by Pearson Education, Inc. All rights reserved](https://reader035.vdocuments.net/reader035/viewer/2022062305/56649d215503460f949f5f92/html5/thumbnails/16.jpg)
Algorithm
Figure 9-5 A partition of an array during a quick sortCopyright ©2012 by Pearson Education, Inc. All rights reserved
![Page 17: Faster Sorting Methods Chapter 9 Copyright ©2012 by Pearson Education, Inc. All rights reserved](https://reader035.vdocuments.net/reader035/viewer/2022062305/56649d215503460f949f5f92/html5/thumbnails/17.jpg)
Efficiency of Quick Sort
• For n items n comparisons to find pivot
• If every choice of pivot cause equal sized arrays, recursive calls halve the array
• Results in O(n log n)
• This we conclude before we develop strategy
Copyright ©2012 by Pearson Education, Inc. All rights reserved
![Page 18: Faster Sorting Methods Chapter 9 Copyright ©2012 by Pearson Education, Inc. All rights reserved](https://reader035.vdocuments.net/reader035/viewer/2022062305/56649d215503460f949f5f92/html5/thumbnails/18.jpg)
Figure 9-6 A partitioning strategy for quick sort
Copyright ©2012 by Pearson Education, Inc. All rights reserved
![Page 19: Faster Sorting Methods Chapter 9 Copyright ©2012 by Pearson Education, Inc. All rights reserved](https://reader035.vdocuments.net/reader035/viewer/2022062305/56649d215503460f949f5f92/html5/thumbnails/19.jpg)
Figure 9-6 A partitioning strategy for quick sort
Copyright ©2012 by Pearson Education, Inc. All rights reserved
![Page 20: Faster Sorting Methods Chapter 9 Copyright ©2012 by Pearson Education, Inc. All rights reserved](https://reader035.vdocuments.net/reader035/viewer/2022062305/56649d215503460f949f5f92/html5/thumbnails/20.jpg)
Figure 9-7 Median-of-three pivot selection: (a) The original array; (b) the array with its first, middle, and last entries sorted
Copyright ©2012 by Pearson Education, Inc. All rights reserved
![Page 21: Faster Sorting Methods Chapter 9 Copyright ©2012 by Pearson Education, Inc. All rights reserved](https://reader035.vdocuments.net/reader035/viewer/2022062305/56649d215503460f949f5f92/html5/thumbnails/21.jpg)
Figure 9-8 (a) The array with its first, middle, and last entries sorted;(b) the array after positioning the pivot and just before partitioning
Copyright ©2012 by Pearson Education, Inc. All rights reserved
![Page 22: Faster Sorting Methods Chapter 9 Copyright ©2012 by Pearson Education, Inc. All rights reserved](https://reader035.vdocuments.net/reader035/viewer/2022062305/56649d215503460f949f5f92/html5/thumbnails/22.jpg)
Java Code for Quick Sort
• Pivot selection code, Listing 9-B
• Partitioning code, Listing 9-C
• QuickSort code, Listing 9-D
• Java Class Library – Class Arrays uses quick sort for primitive types public static void sort(type[] a) public static void sort(type[] a, int first, int after)
Copyright ©2012 by Pearson Education, Inc. All rights reserved
Note: Code listing filesmust be in same folder
as PowerPoint filesfor links to work
Note: Code listing filesmust be in same folder
as PowerPoint filesfor links to work
![Page 23: Faster Sorting Methods Chapter 9 Copyright ©2012 by Pearson Education, Inc. All rights reserved](https://reader035.vdocuments.net/reader035/viewer/2022062305/56649d215503460f949f5f92/html5/thumbnails/23.jpg)
Radix Sort
• Previously seen sorts on objects that can be compared
• Radix sort does not use comparison Looks for matches in certain categories Places items in “buckets”
• Origin is from punched card sorting machines
Copyright ©2012 by Pearson Education, Inc. All rights reserved
![Page 24: Faster Sorting Methods Chapter 9 Copyright ©2012 by Pearson Education, Inc. All rights reserved](https://reader035.vdocuments.net/reader035/viewer/2022062305/56649d215503460f949f5f92/html5/thumbnails/24.jpg)
Figure 9-9 Radix sort: (a) Original array and buckets after first distribution;
Copyright ©2012 by Pearson Education, Inc. All rights reserved
![Page 25: Faster Sorting Methods Chapter 9 Copyright ©2012 by Pearson Education, Inc. All rights reserved](https://reader035.vdocuments.net/reader035/viewer/2022062305/56649d215503460f949f5f92/html5/thumbnails/25.jpg)
Figure 9-9 Radix sort: (b) reordered array and buckets after second distribution;
Copyright ©2012 by Pearson Education, Inc. All rights reserved
![Page 26: Faster Sorting Methods Chapter 9 Copyright ©2012 by Pearson Education, Inc. All rights reserved](https://reader035.vdocuments.net/reader035/viewer/2022062305/56649d215503460f949f5f92/html5/thumbnails/26.jpg)
Figure 9-9 Radix sort: (c) reordered array and buckets after third distribution; (d) sorted array
Copyright ©2012 by Pearson Education, Inc. All rights reserved
![Page 27: Faster Sorting Methods Chapter 9 Copyright ©2012 by Pearson Education, Inc. All rights reserved](https://reader035.vdocuments.net/reader035/viewer/2022062305/56649d215503460f949f5f92/html5/thumbnails/27.jpg)
Radix Pseudocode
Copyright ©2012 by Pearson Education, Inc. All rights reserved
![Page 28: Faster Sorting Methods Chapter 9 Copyright ©2012 by Pearson Education, Inc. All rights reserved](https://reader035.vdocuments.net/reader035/viewer/2022062305/56649d215503460f949f5f92/html5/thumbnails/28.jpg)
Figure 9-10 The time efficiency of various sorting algorithms, expressed in Big Oh notation
Copyright ©2012 by Pearson Education, Inc. All rights reserved
![Page 29: Faster Sorting Methods Chapter 9 Copyright ©2012 by Pearson Education, Inc. All rights reserved](https://reader035.vdocuments.net/reader035/viewer/2022062305/56649d215503460f949f5f92/html5/thumbnails/29.jpg)
Figure 9-11 A comparison of growth-rate functions as n increases
Copyright ©2012 by Pearson Education, Inc. All rights reserved
![Page 30: Faster Sorting Methods Chapter 9 Copyright ©2012 by Pearson Education, Inc. All rights reserved](https://reader035.vdocuments.net/reader035/viewer/2022062305/56649d215503460f949f5f92/html5/thumbnails/30.jpg)
End
Chapter 9
Copyright ©2012 by Pearson Education, Inc. All rights reserved