dsalglib  1.0.0
dsalglib is a ready to use data structures and algorithms library written in C++ . Object Oriented Template implementations are written.
mergesort.h
Go to the documentation of this file.
1 //
2 // Created by moghya_s on 12/26/2016.
3 //
4 
5 #ifndef DSALGLIB_MERGESORT_H
6 #define DSALGLIB_MERGESORT_H
7 
8 #include "array.h"
9 namespace dsa
10 {
11  template<typename type>
12  void merge(array<type> arr,long long int size,long long int start,long long int middle,long long int end)
13  {
14  array<type> temp(size); long long int i,j,k;
15  for(i=start;i<=end;i++)
16  temp[i]=arr[i];
17 
18  i=start;
19  j=middle+1;
20  k=start;
21 
22  while(i<=middle&&j<=end)
23  {
24  if(temp[i]<=temp[j])
25  {
26  arr[k]=temp[i];
27  i++;
28  }
29  else
30  {
31  arr[k]=temp[j];
32  j++;
33  }
34  k++;
35  }
36  while(i<=middle)
37  {
38  arr[k]=temp[i];
39  k++;
40  i++;
41  }
42 
43  }
44 
45  template<typename type>
46  void mergesort(array<type> arr,long long int size,long long int start,long long int end)
47  {
48  if(start<end)
49  {
50  long long int middle = (start+end)/2;
51  mergesort(arr,size,start,middle);
52  mergesort(arr,size,middle+1,end);
53  merge(arr,size,start,middle,end);
54  }
55  }
56 }
57 #endif //DSALGLIB_MERGESORT_H
Definition: alginc.h:12
void mergesort(array< type > arr, long long int size, long long int start, long long int end)
Definition: mergesort.h:46
void merge(array< type > arr, long long int size, long long int start, long long int middle, long long int end)
Definition: mergesort.h:12