Download presentation
Presentation is loading. Please wait.
Published byLiliana Elliott Modified over 9 years ago
1
Trace of QuickSort Algorithm
2
quickSort(array, lower, upper) { // Base Case if (lower >= upper) { we’re done } else { partition array around pivot value array[lower] pos contains the new location of pivot value quickSort array up to pos: quickSort(array,lower,pos) quickSort array after pos: quickSort(array,pos+1,upper) }
3
partition(array, lower, upper) { pivot is array[lower] while (true) { scan from right to left using index called RIGHT STOP when locate an element that should be left of pivot scan from left to right using index called LEFT stop when locate an element that should be right of pivot swap array[RIGHT] and array[LEFT] if (RIGHT and LEFT cross) pos = location where LEFT/RIGHT cross swap pivot and array[pos] all values left of pivot are <= pivot all values right of pivot are >= pivot return pos end pos }
4
6591234 012345 quickSort(arr,0,5)
5
6591234 012345 partition(arr,0,5)
6
quickSort(arr,0,5) 6591234 012345 partition(arr,0,5) pivot= ? Partition Initialization...
7
quickSort(arr,0,5) 6591234 012345 partition(arr,0,5) pivot=6 Partition Initialization...
8
quickSort(arr,0,5) 6591234 012345 partition(arr,0,5) left pivot=6 Partition Initialization...
9
quickSort(arr,0,5) 6591234 012345 partition(arr,0,5) left right pivot=6 Partition Initialization...
10
quickSort(arr,0,5) 6591234 012345 partition(arr,0,5) left right pivot=6 right moves to the left until value that should be to left of pivot...
11
quickSort(arr,0,5) 6591234 012345 partition(arr,0,5) left right pivot=6
12
quickSort(arr,0,5) 6591234 012345 partition(arr,0,5) left right pivot=6 left moves to the right until value that should be to right of pivot...
13
quickSort(arr,0,5) 6591234 012345 partition(arr,0,5) left right pivot=6
14
quickSort(arr,0,5) 6591234 012345 partition(arr,0,5) left right pivot=6
15
quickSort(arr,0,5) 6591234 012345 partition(arr,0,5) left right pivot=6 swap arr[left] and arr[right]
16
quickSort(arr,0,5) 6541239 012345 partition(arr,0,5) left right pivot=6 repeat right/left scan UNTIL left & right cross
17
quickSort(arr,0,5) 6541239 012345 partition(arr,0,5) left right pivot=6 right moves to the left until value that should be to left of pivot...
18
quickSort(arr,0,5) 6541239 012345 partition(arr,0,5) left right pivot=6
19
quickSort(arr,0,5) 6541239 012345 partition(arr,0,5) left right pivot=6 left moves to the right until value that should be to right of pivot...
20
quickSort(arr,0,5) 6541239 012345 partition(arr,0,5) leftright pivot=6
21
quickSort(arr,0,5) 6541239 012345 partition(arr,0,5) leftright pivot=6 swap arr[left] and arr[right]
22
quickSort(arr,0,5) 6543129 012345 partition(arr,0,5) leftright pivot=6 swap arr[left] and arr[right]
23
quickSort(arr,0,5) 6543129 012345 partition(arr,0,5) leftright pivot=6 repeat right/left scan UNTIL left & right cross
24
quickSort(arr,0,5) 6543129 012345 partition(arr,0,5) leftright pivot=6 right moves to the left until value that should be to left of pivot...
25
quickSort(arr,0,5) 6543129 012345 partition(arr,0,5) left right pivot=6
26
quickSort(arr,0,5) 6543129 012345 partition(arr,0,5) left right pivot=6 right & left CROSS!!!
27
quickSort(arr,0,5) 6543129 012345 partition(arr,0,5) left right pivot=6 right & left CROSS!!! 1 - Swap pivot and arr[right]
28
quickSort(arr,0,5) 3546129 012345 partition(arr,0,5) left right pivot=6 right & left CROSS!!! 1 - Swap pivot and arr[right]
29
quickSort(arr,0,5) 3546129 012345 partition(arr,0,5) left right pivot=6 right & left CROSS!!! 1 - Swap pivot and arr[right] 2 - Return new location of pivot to caller return 3
30
quickSort(arr,0,5) 3546129 012345 Recursive calls to quickSort() using partitioned array... pivot position
31
quickSort(arr,0,5) 3546129 012345 quickSort(arr,0,3) 3546 0123 quickSort(arr,4,5) 129 45
32
quickSort(arr,0,5) quickSort(arr,0,3) 3546 0123 quickSort(arr,4,5) 129 45 partition(arr,0,3)
33
quickSort(arr,0,3) 3546 0123 quickSort(arr,4,5) 129 45 partition(arr,0,3) Partition Initialization... quickSort(arr,0,5)
34
quickSort(arr,0,3) 3546 0123 quickSort(arr,4,5) 129 45 partition(arr,0,3) Partition Initialization... quickSort(arr,0,5)
35
quickSort(arr,0,3) 3546 0123 quickSort(arr,4,5) 129 45 partition(arr,0,3) Partition Initialization... left quickSort(arr,0,5)
36
quickSort(arr,0,3) 3546 0123 quickSort(arr,4,5) 129 45 partition(arr,0,3) Partition Initialization... left right quickSort(arr,0,5)
37
right moves to the left until value that should be to left of pivot... quickSort(arr,0,3) 3546 0123 quickSort(arr,4,5) 129 45 partition(arr,0,3) left right quickSort(arr,0,5)
38
quickSort(arr,0,3) 3546 0123 quickSort(arr,4,5) 129 45 partition(arr,0,3) left right quickSort(arr,0,5)
39
quickSort(arr,0,3) 3546 0123 quickSort(arr,4,5) 129 45 partition(arr,0,3) left right quickSort(arr,0,5)
40
quickSort(arr,0,3) 3546 0123 quickSort(arr,4,5) 129 45 partition(arr,0,3) left right quickSort(arr,0,5)
41
quickSort(arr,0,3) 3546 0123 quickSort(arr,4,5) 129 45 partition(arr,0,3) left right right & left CROSS!!! quickSort(arr,0,5)
42
quickSort(arr,0,3) 3546 0123 quickSort(arr,4,5) 129 45 partition(arr,0,3) left right right & left CROSS!!! 1 - Swap pivot and arr[right] quickSort(arr,0,5)
43
quickSort(arr,0,3) 3546 0123 quickSort(arr,4,5) 129 45 partition(arr,0,3) left right right & left CROSS!!! 1 - Swap pivot and arr[right] right & left CROSS!!! 1 - Swap pivot and arr[right] 2 - Return new location of pivot to caller return 0 quickSort(arr,0,5)
44
quickSort(arr,0,3) 3546 0123 quickSort(arr,4,5) 129 45 quickSort(arr,0,5) Recursive calls to quickSort() using partitioned array...
45
quickSort(arr,0,3) quickSort(arr,4,5) 129 45 quickSort(arr,0,5) quickSort(arr,0,0) 3 0 quickSort(arr,1,3) 546 123
46
quickSort(arr,0,3) quickSort(arr,4,5) 129 45 quickSort(arr,0,5) quickSort(arr,0,0) 3 0 quickSort(arr,1,3) 546 123 Base case triggered... halting recursion.
47
quickSort(arr,0,3) quickSort(arr,4,5) 129 45 quickSort(arr,0,5) quickSort(arr,0,0) 3 0 quickSort(arr,1,3) 546 123 Base Case: Return
48
quickSort(arr,0,3) quickSort(arr,4,5) 129 45 quickSort(arr,0,5) quickSort(arr,0,0) 3 0 quickSort(arr,1,3) 546 123 partition(arr,1,3) Partition Initialization...
49
quickSort(arr,0,3) quickSort(arr,4,5) 129 45 quickSort(arr,0,5) quickSort(arr,0,0) 3 0 quickSort(arr,1,3) 546 123 partition(arr,1,3) Partition Initialization...
50
quickSort(arr,0,3) quickSort(arr,4,5) 129 45 quickSort(arr,0,5) quickSort(arr,0,0) 3 0 quickSort(arr,1,3) 546 123 partition(arr,1,3) Partition Initialization... left
51
quickSort(arr,0,3) quickSort(arr,4,5) 129 45 quickSort(arr,0,5) quickSort(arr,0,0) 3 0 quickSort(arr,1,3) 546 123 partition(arr,1,3) left right right moves to the left until value that should be to left of pivot...
52
quickSort(arr,0,3) quickSort(arr,4,5) 129 45 quickSort(arr,0,5) quickSort(arr,0,0) 3 0 quickSort(arr,1,3) 546 123 partition(arr,1,3) left right
53
quickSort(arr,0,3) quickSort(arr,4,5) 129 45 quickSort(arr,0,5) quickSort(arr,0,0) 3 0 quickSort(arr,1,3) 546 123 partition(arr,1,3) left right left moves to the right until value that should be to right of pivot...
54
quickSort(arr,0,3) quickSort(arr,4,5) 129 45 quickSort(arr,0,5) quickSort(arr,0,0) 3 0 quickSort(arr,1,3) 546 123 partition(arr,1,3) left right
55
quickSort(arr,0,3) quickSort(arr,4,5) 129 45 quickSort(arr,0,5) quickSort(arr,0,0) 3 0 quickSort(arr,1,3) 546 123 partition(arr,1,3) left right right & left CROSS!
56
quickSort(arr,0,3) quickSort(arr,4,5) 129 45 quickSort(arr,0,5) quickSort(arr,0,0) 3 0 quickSort(arr,1,3) 546 123 partition(arr,1,3) left right right & left CROSS! 1- swap pivot and arr[right]
57
quickSort(arr,0,3) quickSort(arr,4,5) 129 45 quickSort(arr,0,5) quickSort(arr,0,0) 3 0 quickSort(arr,1,3) 456 123 partition(arr,1,3) left right right & left CROSS! 1- swap pivot and arr[right]
58
quickSort(arr,0,3) quickSort(arr,4,5) 129 45 quickSort(arr,0,5) quickSort(arr,0,0) 3 0 quickSort(arr,1,3) 456 123 partition(arr,1,3) left right right & left CROSS! 1- swap pivot and arr[right] 2 – return new position of pivot return 2
59
quickSort(arr,0,3) quickSort(arr,4,5) 129 45 quickSort(arr,0,5) quickSort(arr,0,0) 3 0 quickSort(arr,1,3) quickSort(arr,1,2)quickSort(arr,3,3) 456 12 3
60
quickSort(arr,0,3) quickSort(arr,4,5) 129 45 quickSort(arr,0,5) quickSort(arr,0,0) 3 0 quickSort(arr,1,3) quickSort(arr,1,2)quickSort(arr,3,3) 456 12 3 partition(arr,1,2)
61
quickSort(arr,0,3) quickSort(arr,4,5) 129 45 quickSort(arr,0,5) quickSort(arr,0,0) 3 0 quickSort(arr,1,3) quickSort(arr,1,2)quickSort(arr,3,3) 456 12 3
62
quickSort(arr,0,3) quickSort(arr,4,5) 129 45 quickSort(arr,0,5) quickSort(arr,0,0) 3 0 quickSort(arr,1,3) quickSort(arr,1,2)quickSort(arr,3,3) 6 3 quickSort(arr,1,1)quickSort(arr,2,2) 45 12
63
quickSort(arr,0,3) quickSort(arr,4,5) 129 45 quickSort(arr,0,5) quickSort(arr,0,0) 3 0 quickSort(arr,1,3) quickSort(arr,1,2)quickSort(arr,3,3) 6 3 quickSort(arr,1,1)quickSort(arr,2,2) 45 12 partition(arr,4,5)
64
quickSort(arr,0,3) quickSort(arr,4,5) 912 45 quickSort(arr,0,5) quickSort(arr,0,0) 3 0 quickSort(arr,1,3) quickSort(arr,1,2)quickSort(arr,3,3) 6 3 quickSort(arr,1,1)quickSort(arr,2,2) 45 12 partition(arr,4,5)
65
quickSort(arr,0,3) quickSort(arr,4,5) quickSort(arr,0,5) quickSort(arr,0,0) 3 0 quickSort(arr,1,3) quickSort(arr,1,2)quickSort(arr,3,3) 6 3 quickSort(arr,1,1)quickSort(arr,2,2) 45 12 quickSort(arr,4,5) 912 45 quickSort(arr,6,5)
66
quickSort(arr,0,3) quickSort(arr,4,5) quickSort(arr,0,5) quickSort(arr,0,0) 3 0 quickSort(arr,1,3) quickSort(arr,1,2)quickSort(arr,3,3) 6 3 quickSort(arr,1,1)quickSort(arr,2,2) 45 12 quickSort(arr,4,5) 912 45 partition(arr,4,5) quickSort(arr,6,5)
67
quickSort(arr,0,3) quickSort(arr,4,5) quickSort(arr,0,5) quickSort(arr,0,0) 3 0 quickSort(arr,1,3) quickSort(arr,1,2)quickSort(arr,3,3) 6 3 quickSort(arr,1,1)quickSort(arr,2,2) 45 12 quickSort(arr,4,5) 912 45 quickSort(arr,6,5)
68
quickSort(arr,0,3) quickSort(arr,4,5) quickSort(arr,0,5) quickSort(arr,0,0) 3 0 quickSort(arr,1,3) quickSort(arr,1,2)quickSort(arr,3,3) 6 3 quickSort(arr,1,1)quickSort(arr,2,2) 45 12 quickSort(arr,4,5) 9 12 4 5 quickSort(arr,4,4) quickSort(arr,5,5) quickSort(arr,6,5)
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.