Download - Algorithm Efficiency and Sorting · Data Abstraction and Problem Solving with JAVA Walls and Mirrors Frank M. Carrano and Janet J. Prichard ... An insertion sort partitions the array

Transcript

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

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

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

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

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

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

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

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

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.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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