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

Algorithm 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.2 When

  • Upload
    others

  • View
    5

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Algorithm 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.2 When

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: Algorithm 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.2 When

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: Algorithm 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.2 When

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: Algorithm 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.2 When

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: Algorithm 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.2 When

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: Algorithm 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.2 When

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: Algorithm 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.2 When

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: Algorithm 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.2 When

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: Algorithm 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.2 When

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: Algorithm 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.2 When

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: Algorithm 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.2 When

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: Algorithm 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.2 When

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: Algorithm 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.2 When

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: Algorithm 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.2 When

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: Algorithm 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.2 When

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: Algorithm 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.2 When

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: Algorithm 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.2 When

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: Algorithm 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.2 When

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: Algorithm 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.2 When

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: Algorithm 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.2 When

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: Algorithm 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.2 When

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: Algorithm 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.2 When

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: Algorithm 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.2 When

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: Algorithm 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.2 When

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: Algorithm 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.2 When

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