Abstract In-place Merge Demo - DePaul...
Transcript of Abstract In-place Merge Demo - DePaul...
Algorithms, 4th Edition · Robert Sedgewick and Kevin Wayne · Copyright © 2002–2011 · February 23, 2012 4:05:53 PM
AlgorithmsF O U R T H E D I T I O N
R O B E R T S E D G E W I C K K E V I N W A Y N E
2.2 ABSTRACT IN-PLACE MERGE DEMO
click to begin demo
Goal. Given two sorted subarrays a[lo] to a[mid] and a[mid+1] to a[hi], replace with sorted subarray a[lo] to a[hi].
2
Abstract in-place merge
E E G M R A C E R T
lo mid mid+1 hi
a[]
sorted sorted
Goal. Given two sorted subarrays a[lo] to a[mid] and a[mid+1] to a[hi], replace with sorted subarray a[lo] to a[hi].
3
Abstract in-place merge
E E G M R A C E R T
lo mid mid+1 hi
a[]
copy to auxiliary array
aux[]
E E G M R A C E R T
Goal. Given two sorted subarrays a[lo] to a[mid] and a[mid+1] to a[hi], replace with sorted subarray a[lo] to a[hi].
3
Abstract in-place merge
E E G M R A C E R T
lo mid mid+1 hi
a[]
copy to auxiliary array
aux[] E E G M R A C E R T
Goal. Given two sorted subarrays a[lo] to a[mid] and a[mid+1] to a[hi], replace with sorted subarray a[lo] to a[hi].
4
Abstract in-place merge
E E G M R A C E R Taux[]
a[] E E G M R A C E R T
Goal. Given two sorted subarrays a[lo] to a[mid] and a[mid+1] to a[hi], replace with sorted subarray a[lo] to a[hi].
5
Abstract in-place merge
E E G M R A C E R Taux[]
i j
a[] E E G M R A C E R T
k
Goal. Given two sorted subarrays a[lo] to a[mid] and a[mid+1] to a[hi], replace with sorted subarray a[lo] to a[hi].
5
Abstract in-place merge
compare minimum in each subarray
E E G M R A C E R Taux[]
i j
a[] E E G M R A C E R T
k
A
Goal. Given two sorted subarrays a[lo] to a[mid] and a[mid+1] to a[hi], replace with sorted subarray a[lo] to a[hi].
6
Abstract in-place merge
compare minimum in each subarray
E E G M R A C E R Taux[]
i j
a[] E E G M R A C E R T
k
A
Goal. Given two sorted subarrays a[lo] to a[mid] and a[mid+1] to a[hi], replace with sorted subarray a[lo] to a[hi].
7
Abstract in-place merge
E E G M R A C E R Taux[]
i j
A E G M R A C E R Ta[]
k
Goal. Given two sorted subarrays a[lo] to a[mid] and a[mid+1] to a[hi], replace with sorted subarray a[lo] to a[hi].
7
Abstract in-place merge
E E G M R A C E R Taux[]
i j
A E G M R A C E R Ta[]
k
compare minimum in each subarray
C
Goal. Given two sorted subarrays a[lo] to a[mid] and a[mid+1] to a[hi], replace with sorted subarray a[lo] to a[hi].
8
Abstract in-place merge
E E G M R A C E R Taux[]
i j
A E G M R A C E R Ta[]
k
compare minimum in each subarray
C
Goal. Given two sorted subarrays a[lo] to a[mid] and a[mid+1] to a[hi], replace with sorted subarray a[lo] to a[hi].
9
Abstract in-place merge
E E G M R A C E R Taux[]
i j
A C G M R A C E R Ta[]
k
Goal. Given two sorted subarrays a[lo] to a[mid] and a[mid+1] to a[hi], replace with sorted subarray a[lo] to a[hi].
9
Abstract in-place merge
E E G M R A C E R Taux[]
i j
A C G M R A C E R Ta[]
k
compare minimum in each subarray
E
Goal. Given two sorted subarrays a[lo] to a[mid] and a[mid+1] to a[hi], replace with sorted subarray a[lo] to a[hi].
10
Abstract in-place merge
E E G M R A C E R Taux[]
i j
A C G M R A C E R Ta[]
k
compare minimum in each subarray
E
Goal. Given two sorted subarrays a[lo] to a[mid] and a[mid+1] to a[hi], replace with sorted subarray a[lo] to a[hi].
11
Abstract in-place merge
E E G M R A C E R Taux[]
i j
A C E M R A C E R Ta[]
k
Goal. Given two sorted subarrays a[lo] to a[mid] and a[mid+1] to a[hi], replace with sorted subarray a[lo] to a[hi].
11
Abstract in-place merge
E E G M R A C E R Taux[]
i j
A C E M R A C E R Ta[]
k
compare minimum in each subarray
E
Goal. Given two sorted subarrays a[lo] to a[mid] and a[mid+1] to a[hi], replace with sorted subarray a[lo] to a[hi].
12
Abstract in-place merge
E E G M R A C E R Taux[]
i j
A C E M R A C E R Ta[]
k
compare minimum in each subarray
E
Goal. Given two sorted subarrays a[lo] to a[mid] and a[mid+1] to a[hi], replace with sorted subarray a[lo] to a[hi].
13
Abstract in-place merge
E E G M R A C E R Taux[]
i j
A C E E R A C E R Ta[]
k
Goal. Given two sorted subarrays a[lo] to a[mid] and a[mid+1] to a[hi], replace with sorted subarray a[lo] to a[hi].
13
Abstract in-place merge
E E G M R A C E R Taux[]
i j
A C E E R A C E R Ta[]
k
compare minimum in each subarray
E
Goal. Given two sorted subarrays a[lo] to a[mid] and a[mid+1] to a[hi], replace with sorted subarray a[lo] to a[hi].
14
Abstract in-place merge
E E G M R A C E R Taux[]
i j
A C E E R A C E R Ta[]
k
compare minimum in each subarray
E
Goal. Given two sorted subarrays a[lo] to a[mid] and a[mid+1] to a[hi], replace with sorted subarray a[lo] to a[hi].
15
Abstract in-place merge
E E G M R A C E R Taux[]
i j
A C E E E A C E R Ta[]
k
Goal. Given two sorted subarrays a[lo] to a[mid] and a[mid+1] to a[hi], replace with sorted subarray a[lo] to a[hi].
15
Abstract in-place merge
E E G M R A C E R Taux[]
i j
A C E E E A C E R Ta[]
k
compare minimum in each subarray
G
Goal. Given two sorted subarrays a[lo] to a[mid] and a[mid+1] to a[hi], replace with sorted subarray a[lo] to a[hi].
16
Abstract in-place merge
E E G M R A C E R Taux[]
i j
A C E E E A C E R Ta[]
k
compare minimum in each subarray
G
Goal. Given two sorted subarrays a[lo] to a[mid] and a[mid+1] to a[hi], replace with sorted subarray a[lo] to a[hi].
17
Abstract in-place merge
E E G M R A C E R Taux[]
i j
A C E E E G C E R Ta[]
k
Goal. Given two sorted subarrays a[lo] to a[mid] and a[mid+1] to a[hi], replace with sorted subarray a[lo] to a[hi].
17
Abstract in-place merge
E E G M R A C E R Taux[]
i j
A C E E E G C E R Ta[]
k
compare minimum in each subarray
M
Goal. Given two sorted subarrays a[lo] to a[mid] and a[mid+1] to a[hi], replace with sorted subarray a[lo] to a[hi].
18
Abstract in-place merge
E E G M R A C E R Taux[]
i j
A C E E E G C E R Ta[]
k
compare minimum in each subarray
M
Goal. Given two sorted subarrays a[lo] to a[mid] and a[mid+1] to a[hi], replace with sorted subarray a[lo] to a[hi].
19
Abstract in-place merge
E E G M R A C E R Taux[]
i j
A C E E E G M E R Ta[]
k
Goal. Given two sorted subarrays a[lo] to a[mid] and a[mid+1] to a[hi], replace with sorted subarray a[lo] to a[hi].
19
Abstract in-place merge
E E G M R A C E R Taux[]
i j
A C E E E G M E R Ta[]
k
compare minimum in each subarray
R
Goal. Given two sorted subarrays a[lo] to a[mid] and a[mid+1] to a[hi], replace with sorted subarray a[lo] to a[hi].
20
Abstract in-place merge
E E G M R A C E R Taux[]
i j
A C E E E G M E R Ta[]
k
compare minimum in each subarray
R
Goal. Given two sorted subarrays a[lo] to a[mid] and a[mid+1] to a[hi], replace with sorted subarray a[lo] to a[hi].
21
Abstract in-place merge
E E G M R A C E R Taux[]
i j
A C E E E G M R R Ta[]
k
Goal. Given two sorted subarrays a[lo] to a[mid] and a[mid+1] to a[hi], replace with sorted subarray a[lo] to a[hi].
21
Abstract in-place merge
E E G M R A C E R Taux[]
i j
A C E E E G M R R Ta[]
k
one subarray exhausted, take from other
R
Goal. Given two sorted subarrays a[lo] to a[mid] and a[mid+1] to a[hi], replace with sorted subarray a[lo] to a[hi].
22
Abstract in-place merge
E E G M R A C E R Taux[]
i j
A C E E E G M R R Ta[]
k
one subarray exhausted, take from other
R
Goal. Given two sorted subarrays a[lo] to a[mid] and a[mid+1] to a[hi], replace with sorted subarray a[lo] to a[hi].
23
Abstract in-place merge
E E G M R A C E R Taux[]
i j
A C E E E G M R R Ta[]
k
Goal. Given two sorted subarrays a[lo] to a[mid] and a[mid+1] to a[hi], replace with sorted subarray a[lo] to a[hi].
23
Abstract in-place merge
E E G M R A C E R Taux[]
i j
A C E E E G M R R Ta[]
k
one subarray exhausted, take from other
T
Goal. Given two sorted subarrays a[lo] to a[mid] and a[mid+1] to a[hi], replace with sorted subarray a[lo] to a[hi].
24
Abstract in-place merge
E E G M R A C E R Taux[]
i j
A C E E E G M R R Ta[]
k
one subarray exhausted, take from other
T
Goal. Given two sorted subarrays a[lo] to a[mid] and a[mid+1] to a[hi], replace with sorted subarray a[lo] to a[hi].
25
Abstract in-place merge
E E G M R A C E R T
both subarrays exhausted, done
A C E E E G M R R Ta[]
aux[]
i j
k
Goal. Given two sorted subarrays a[lo] to a[mid] and a[mid+1] to a[hi], replace with sorted subarray a[lo] to a[hi].
26
Abstract in-place merge
A C E E E G M R R Ta[]
sorted
lo hi