abstract in-place merge demo - depaul...

Post on 14-Jul-2020

7 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

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

top related