20
Presentation By: NUPUR Algorithm Design & Analysis

Merge sort

Embed Size (px)

DESCRIPTION

 

Citation preview

Page 1: Merge sort

Presentation By: NUPUR

Algorithm Design & Analysis

Page 2: Merge sort

Invented byJohn von Neumann

(1903-1957) Follows divide and

conquer paradigm.

Developed merge sort for EDVAC in 1945

Page 3: Merge sort

The key to Merge Sort is merging two sorted lists into one, such that if you have two lists X (x1x2…xm) and Y(y1y2…yn) the resulting list is Z(z1z2…zm+n)

Example:L1 = { 3 8 9 } L2 = { 1 5 7 }

merge(L1, L2) = { 1 3 5 7 8 9 }

Page 4: Merge sort

1.Divide: Divide the unsorted list into two sub lists of about half the size.

2.Conquer: Sort each of the two sub lists recursively until we have list sizes of length 1,in which case the list itself is returned.

3.Combine: Merge the two-sorted sub lists back into one sorted list.

Page 5: Merge sort

Merge-Sort (A, n)

if n=1 return

else

n1 ← n2 ← n/2

create array L[n1], R[n2]

for i ← 0 to n1-1 do L[i] ← A[i]

for j ← 0 to n2-1 do R[j] ← A[n1+j]

Merge-Sort(L, n1)

Merge-Sort(R, n2)

Merge(A, L, n1, R, n2 )

Page 6: Merge sort

99 6 86 15 58 35 86 4 0

Page 7: Merge sort

99 6 86 15 58 35 86 4 0

99 6 86 15 58 35 86 4 0

Page 8: Merge sort

99 6 86 15 58 35 86 4 0

99 6 86 15 58 35 86 4 0

86 1599 6 58 35 86 4 0

Page 9: Merge sort

99 6 86 15 58 35 86 4 0

99 6 86 15 58 35 86 4 0

86 1599 6 58 35 86 4 0

99 6 86 15 58 35 86 4 0

Page 10: Merge sort

99 6 86 15 58 35 86 4 0

99 6 86 15 58 35 86 4 0

86 1599 6 58 35 86 4 0

99 6 86 15 58 35 86 4 0

4 0

Page 11: Merge sort

99 6 86 15 58 35 86 0 4

4 0Merge

Page 12: Merge sort

15 866 99 58 35 0 4 86

99 6 86 15 58 35 86 0 4

Merge

Page 13: Merge sort

6 15 86 99 0 4 35 58 86

15 866 99 58 35 0 4 86

Merge

Page 14: Merge sort

0 4 6 15 35 58 86 86 99

6 15 86 99 0 4 35 58 86

Merge

Page 15: Merge sort

0 4 6 15 35 58 86 86 99

Page 16: Merge sort

There are two basic ways to implement merge sort:

In Place: Merging is done with only the input array

Double Storage: Merging is done with a temporary array of the same size as the input array.

Page 17: Merge sort

17

Merge-Sort Analysis

• Time, merging

log n levels

• Total running time: order of nlogn• Total Space: order of n

Total time for merging: cn log n

n

n/2 n/2

n/4 n/4 n/4 n/4

Page 18: Merge sort

Merge sort’s merge operation is useful in online sorting, where the list to be sorted is received a piece at a time,instead of all at the beginning..

In this We sort each new piece that is received using any sorting algorithm, and then merge it into our sorted list so far using the merge operation.

Page 19: Merge sort

Best Case, Average Case, and Worst Case = O(N logN)

• Storage Requirement:

Double that needed to hold the array to be sorted.

Page 20: Merge sort