Algorithm Efficiency and Sorting · Data Abstraction and Problem Solving with JAVA Walls and...

25
Data Abstraction and Problem Solving with JAVA Walls and Mirrors Frank 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 Mirrors Walls and Mirrors Carrano Carrano / / Prichard Prichard Algorithm Efficiency and Sorting Algorithm Efficiency and Sorting

Transcript of Algorithm Efficiency and Sorting · Data Abstraction and Problem Solving with JAVA Walls and...

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