• By:-
• Gagan.R.Popale-2BV13CS034
• Ankit Gaonkar -2BV13CS014
• Anung Tajo-2BV13CS015
• Alan S Malekar-2BV13CS010
Sorting
WHAT IS SORTING?
 Sorting is the process of
putting a list or a group of
items in a specific order.
Some common sorting criteria
are: alphabetical or numerical.
 Ex:- Merge sort, Quick sort
etc
Merge sort and Quick sort use :
Divide And Conqure Technique
3
 Divide the problem into a number of sub-problems
◦ Similar sub-problems of smaller size
 Conquer the sub-problems
◦ Solve the sub-problems recursively
◦ Sub-problem size small enough  solve the problems in
straightforward manner
 Combine the solutions of the sub-problems
◦ Obtain the solution for the original problem
Merge Sort
In the Beginning…
Invented by
John von Neumann
(1903-1957)
 Follows divide
and conquer
paradigm.
 Developed merge
sort for EDVAC in
1945
Merging
 The key to Merge Sort is merging two
sorted lists into one, such that if you
have two lists X (x1x2…xm) and
Y(y1y2…yn) the resulting list is
Z(z1z2…zm+n)
 Example:
L1 = { 3 8 9 } L2 = { 1 5 7 }
merge(L1, L2) = { 1 3 5 7 8 9 }
Divide And Conquer
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.
Merge sort algorithm
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 )
Merge Sort Example
99 6 86 15 58 35 86 4 0
99 6 86 15 58 35 86 4 0
Merge Sort Example
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
Merge Sort Example
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
Merge Sort Example
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
Merge Sort Example
99 6 86 15 58 35 86 4 0
Merge Sort Example
99 6 86 15 58 35 86 0 4
4 0Merge
Merge Sort Example
15 866 99 58 35 0 4 86
99 6 86 15 58 35 86 0 4
Merge
Merge Sort Example
6 15 86 99 0 4 35 58 86
15 866 99 58 35 0 4 86
Merge
Merge Sort Example
0 4 6 15 35 58 86 86 99
6 15 86 99 0 4 35 58 86
Merge
Merge Sort Example
0 4 6 15 35 58 86 86 99
Implementing 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.
20
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
Additional
 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.
Finally
Best Case, Average Case, and Worst Case
= O(N logN)
• Storage Requirement:
Double that needed to hold the array to be
sorted.
Daa final
Daa final
Daa final
Daa final
Daa final
Daa final
Daa final
Daa final

Daa final

  • 1.
    • By:- • Gagan.R.Popale-2BV13CS034 •Ankit Gaonkar -2BV13CS014 • Anung Tajo-2BV13CS015 • Alan S Malekar-2BV13CS010 Sorting
  • 2.
    WHAT IS SORTING? Sorting is the process of putting a list or a group of items in a specific order. Some common sorting criteria are: alphabetical or numerical.  Ex:- Merge sort, Quick sort etc
  • 3.
    Merge sort andQuick sort use : Divide And Conqure Technique 3  Divide the problem into a number of sub-problems ◦ Similar sub-problems of smaller size  Conquer the sub-problems ◦ Solve the sub-problems recursively ◦ Sub-problem size small enough  solve the problems in straightforward manner  Combine the solutions of the sub-problems ◦ Obtain the solution for the original problem
  • 4.
  • 5.
    In the Beginning… Inventedby John von Neumann (1903-1957)  Follows divide and conquer paradigm.  Developed merge sort for EDVAC in 1945
  • 6.
    Merging  The keyto Merge Sort is merging two sorted lists into one, such that if you have two lists X (x1x2…xm) and Y(y1y2…yn) the resulting list is Z(z1z2…zm+n)  Example: L1 = { 3 8 9 } L2 = { 1 5 7 } merge(L1, L2) = { 1 3 5 7 8 9 }
  • 7.
    Divide And Conquer 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.
  • 8.
    Merge sort algorithm 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 )
  • 9.
    Merge Sort Example 996 86 15 58 35 86 4 0 99 6 86 15 58 35 86 4 0
  • 10.
    Merge Sort Example 996 86 15 58 35 86 4 0 99 6 86 15 58 35 86 4 0 86 1599 6 58 35 86 4 0
  • 11.
    Merge Sort Example 996 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
  • 12.
    Merge Sort Example 996 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
  • 13.
    Merge Sort Example 996 86 15 58 35 86 4 0
  • 14.
    Merge Sort Example 996 86 15 58 35 86 0 4 4 0Merge
  • 15.
    Merge Sort Example 15866 99 58 35 0 4 86 99 6 86 15 58 35 86 0 4 Merge
  • 16.
    Merge Sort Example 615 86 99 0 4 35 58 86 15 866 99 58 35 0 4 86 Merge
  • 17.
    Merge Sort Example 04 6 15 35 58 86 86 99 6 15 86 99 0 4 35 58 86 Merge
  • 18.
    Merge Sort Example 04 6 15 35 58 86 86 99
  • 19.
    Implementing 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.
  • 20.
    20 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
  • 21.
    Additional  Merge sort’smerge 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.
  • 22.
    Finally Best Case, AverageCase, and Worst Case = O(N logN) • Storage Requirement: Double that needed to hold the array to be sorted.