32
Merge sort

Merge original( a)

  • View
    236

  • Download
    2

Embed Size (px)

DESCRIPTION

 

Citation preview

Page 1: Merge original( a)

Merge sort

Page 2: Merge original( a)

Merge sort has a secret sauce - it’s how you mix lists

2 5 7 1 3 8Sorted list A Sorted list B

Merged List

Merge sort

Page 3: Merge original( a)

2 5 7 1 3 8Sorted list A Sorted list B

Merged ListTo merge two sorted lists begin at the

beginning of each

Merge sort secret sauce

Page 4: Merge original( a)

2 5 7 1 3 8Sorted list A Sorted list B

Merged List

You have two markers (red)for for each list.

Merge sort secret sauce

Page 5: Merge original( a)

2 5 7 1 3 8Sorted list A Sorted list B

Merged ListThe next item in the merged list is the lower

of the two

Merge sort secret sauce

Page 6: Merge original( a)

2 5 7 1 3 8

1

Sorted list A Sorted list B

Merged ListThe next item in the merged list is the lower

of the two

Merge sort secret sauce

Page 7: Merge original( a)

2 5 7 1 3 8

1 2

Sorted list A Sorted list B

Merged ListIf you use a marker you move it forward and

try again

Merge sort secret sauce

Page 8: Merge original( a)

2 5 7 1 3 8

1 2 3

Sorted list A Sorted list B

Merged ListThe next item in the merged list is the lower

of the two

Merge sort secret sauce

Page 9: Merge original( a)

2 5 7 1 3 8

1 2 3 5

Sorted list A Sorted list B

Merged List

Merge sort secret sauce

Page 10: Merge original( a)

2 5 7 1 3 8

1 2 3 5 7

Sorted list A Sorted list B

Merged List

Merge sort secret sauce

Page 11: Merge original( a)

2 5 7 1 3 8

1 2 3 5 7 8

Sorted list A Sorted list B

Merged ListWhen one list is used you can just use up all of

the other

Merge sort secret sauce

Page 12: Merge original( a)

2 5 1 3 4 7 8

1 2 3 5 7 8

Sorted list A Sorted list B

Merged ListList don’t even have to be the same length to

work!

Merge sort secret sauce

Page 13: Merge original( a)

Once you know how to merge

two sorted lists the rest is easy

Page 14: Merge original( a)

Begin with unsorted list

Page 15: Merge original( a)

Split into two

Page 16: Merge original( a)

Split each list into two again

Page 17: Merge original( a)

Split each list into two again, and again

Page 18: Merge original( a)

Split each list into two again, and again

Page 19: Merge original( a)

Until each list has one item in it

Page 20: Merge original( a)

Each one item list is ‘sorted’

Page 21: Merge original( a)

Now move back and look at the pairs

Page 22: Merge original( a)

Merge the pairs as first described...

Page 23: Merge original( a)

... to make sorted pairs

Page 24: Merge original( a)

Now merge pairs lists keeping them sorted

Page 25: Merge original( a)

Merge pairs of lists together...

Page 26: Merge original( a)

Merge pairs of lists together...

Page 27: Merge original( a)

Finally we get back to the first two lists...

Page 28: Merge original( a)

Which we merge

Page 29: Merge original( a)

Leaving the original list sorted

Page 30: Merge original( a)

Your done!

Page 31: Merge original( a)

2 5 1 3 8 7 4

1 2 3 5 7 8

Sorted list A Sorted list B

Merge sort secret sauce

Merging lists takes as long as the list (order(N))

You do this log(N) timesMaking algorithm Order (N log(N))

Page 32: Merge original( a)

2 5 1 3 4 7 8

1 2 3 4 5 7

Sorted list A Sorted list B

Merge sort secret sauce

Merging lists takes as long as the list (order(N))

You do this log(N) timesMaking algorithm Order (N log(N))

Pity you need extra space to ‘merge’ into otherwise it would be pretty neet