Page 1
Data Abstraction and Problem Solving with JAVA Walls and MirrorsFrank M. Carrano and Janet J. Prichard © 2001 Addison Wesley
Data Abstraction and Problem Solving with JAVA:Data Abstraction and Problem Solving with JAVA:Walls and MirrorsWalls and Mirrors
CarranoCarrano / / PrichardPrichard
Algorithm Efficiency and SortingAlgorithm Efficiency and Sorting
Page 2
Data Abstraction and Problem Solving with JAVA Walls and Mirrors; Frank M. Carrano and Janet J. Prichard © 2001 Addison Wesley
Figure 9.1Figure 9.1Time requirements as a function of the problem size n
Page 3
Data Abstraction and Problem Solving with JAVA Walls and Mirrors; Frank M. Carrano and Janet J. Prichard © 2001 Addison Wesley
Figure 9.2Figure 9.2When n ≥ 2, 3 * n2 exceeds n2 - 3 * n + 10
Page 4
Data Abstraction and Problem Solving with JAVA Walls and Mirrors; Frank M. Carrano and Janet J. Prichard © 2001 Addison Wesley
Figure 9.3aFigure 9.3aA comparison of growth-rate functions: a) in tabular form
Page 5
Data Abstraction and Problem Solving with JAVA Walls and Mirrors; Frank M. Carrano and Janet J. Prichard © 2001 Addison Wesley
Figure 9.3bFigure 9.3bA comparison of growth-rate functions: b) in graphical form
Page 6
Data Abstraction and Problem Solving with JAVA Walls and Mirrors; Frank M. Carrano and Janet J. Prichard © 2001 Addison Wesley
Figure 9.4Figure 9.4A selection sort of an array of five integers
Page 7
Data Abstraction and Problem Solving with JAVA Walls and Mirrors; Frank M. Carrano and Janet J. Prichard © 2001 Addison Wesley
Figure 9.5Figure 9.5The first two passes of a bubble sort of an array of five integers: a) pass 1;b) pass 2
Page 8
Data Abstraction and Problem Solving with JAVA Walls and Mirrors; Frank M. Carrano and Janet J. Prichard © 2001 Addison Wesley
Figure 9.6Figure 9.6An insertion sort partitions the array into two regions
Page 9
Data Abstraction and Problem Solving with JAVA Walls and Mirrors; Frank M. Carrano and Janet J. Prichard © 2001 Addison Wesley
Figure 9.7Figure 9.7An insertion sort of an array of five integers.
Page 10
Data Abstraction and Problem Solving with JAVA Walls and Mirrors; Frank M. Carrano and Janet J. Prichard © 2001 Addison Wesley
Figure 9.8Figure 9.8A mergesort with an auxiliary temporary array
Page 11
Data Abstraction and Problem Solving with JAVA Walls and Mirrors; Frank M. Carrano and Janet J. Prichard © 2001 Addison Wesley
Figure 9.9Figure 9.9A mergesort of an array of six integers
Page 12
Data Abstraction and Problem Solving with JAVA Walls and Mirrors; Frank M. Carrano and Janet J. Prichard © 2001 Addison Wesley
Figure 9.10Figure 9.10A worst-case instance of the merge step in mergesort
Page 13
Data Abstraction and Problem Solving with JAVA Walls and Mirrors; Frank M. Carrano and Janet J. Prichard © 2001 Addison Wesley
Figure 9.11Figure 9.11Levels of recursive calls to mergesort given an array of eight items
Page 14
Data Abstraction and Problem Solving with JAVA Walls and Mirrors; Frank M. Carrano and Janet J. Prichard © 2001 Addison Wesley
Figure 9.12Figure 9.12A partition about a pivot
Page 15
Data Abstraction and Problem Solving with JAVA Walls and Mirrors; Frank M. Carrano and Janet J. Prichard © 2001 Addison Wesley
Figure 9.13Figure 9.13kSmall versus quicksort
Page 16
Data Abstraction and Problem Solving with JAVA Walls and Mirrors; Frank M. Carrano and Janet J. Prichard © 2001 Addison Wesley
Figure 9.14Figure 9.14Invariant for the partition algorithm
Page 17
Data Abstraction and Problem Solving with JAVA Walls and Mirrors; Frank M. Carrano and Janet J. Prichard © 2001 Addison Wesley
Figure 9.15Figure 9.15Initial state of the array
Page 18
Data Abstraction and Problem Solving with JAVA Walls and Mirrors; Frank M. Carrano and Janet J. Prichard © 2001 Addison Wesley
Figure 9.16Figure 9.16Moving theArray[firstUnknown] into S1 by swapping it withtheArray[lastS1+1] and by incrementing both lastS1 andfirstUnknown
Page 19
Data Abstraction and Problem Solving with JAVA Walls and Mirrors; Frank M. Carrano and Janet J. Prichard © 2001 Addison Wesley
Figure 9.17Figure 9.17Moving theArray[firstUnknown] into S2 by incrementing firstUnknown
Page 20
Data Abstraction and Problem Solving with JAVA Walls and Mirrors; Frank M. Carrano and Janet J. Prichard © 2001 Addison Wesley
Figure 9.18aFigure 9.18aDeveloping the first partition of an array when the pivot is the first item
Page 21
Data Abstraction and Problem Solving with JAVA Walls and Mirrors; Frank M. Carrano and Janet J. Prichard © 2001 Addison Wesley
Figure 9.18bFigure 9.18bDeveloping the first partition of an array when the pivot is the first item
Page 22
Data Abstraction and Problem Solving with JAVA Walls and Mirrors; Frank M. Carrano and Janet J. Prichard © 2001 Addison Wesley
Figure 9.19Figure 9.19A worst-case partitioning with quicksort
Page 23
Data Abstraction and Problem Solving with JAVA Walls and Mirrors; Frank M. Carrano and Janet J. Prichard © 2001 Addison Wesley
Figure 9.20Figure 9.20A average-case partitioning with quicksort
Page 24
Data Abstraction and Problem Solving with JAVA Walls and Mirrors; Frank M. Carrano and Janet J. Prichard © 2001 Addison Wesley
Figure 9.21Figure 9.21A radix sort of eight integers
Page 25
Data Abstraction and Problem Solving with JAVA Walls and Mirrors; Frank M. Carrano and Janet J. Prichard © 2001 Addison Wesley
Figure 9.22Figure 9.22Approximate growth rates of time required for eight sorting algorithms