File tree Expand file tree Collapse file tree 1 file changed +78
-0
lines changed Expand file tree Collapse file tree 1 file changed +78
-0
lines changed Original file line number Diff line number Diff line change 1+ #include<bits/stdc++.h>
2+ using namespace std;
3+ 
4+ void display(int *array, int size) {
5+    for(int i = 0; i<size; i++)
6+       cout << array[i] << " ";
7+    cout << endl;
8+ }
9+ void merge(int *array, int l, int m, int r) 
10+ {
11+    int i, j, k, nl, nr;
12+    nl = m-l+1; 
13+    nr = r-m;
14+    int larr[nl], rarr[nr];
15+    
16+    for(i = 0; i<nl; i++)
17+       larr[i] = array[l+i];
18+    
19+    for(j = 0; j<nr; j++)
20+       rarr[j] = array[m+1+j];
21+    
22+    i = 0; j = 0; k = l;
23+    
24+    while(i < nl && j<nr) 
25+    {
26+       if(larr[i] <= rarr[j]) 
27+ 	  {
28+          array[k] = larr[i];
29+          i++;
30+       }
31+ 	  else
32+ 	  {
33+          array[k] = rarr[j];
34+          j++;
35+       }
36+       k++;
37+    }
38+    
39+    while(i<nl) 
40+    {       
41+       array[k] = larr[i];
42+       i++; k++;
43+    }
44+    while(j<nr) 
45+    {     
46+       array[k] = rarr[j];
47+       j++; k++;
48+    }
49+ }
50+ 
51+ void mergeSort(int *array, int l, int r) 
52+ {
53+    int m;
54+    if(l < r) {
55+       int m = l+(r-l)/2;
56+       mergeSort(array, l, m);
57+       mergeSort(array, m+1, r);
58+       merge(array, l, m, r);
59+    }
60+ }
61+ 
62+ int main() {
63+    int n;
64+    cin >> n;
65+    int arr[n];   
66+    for(int i = 0; i<n; i++) {
67+       cin >> arr[i];
68+    }
69+    clock_t start,end;
70+ 
71+    start = clock();
72+    mergeSort(arr, 0, n-1); 
73+    end = clock();
74+    double time_taken = double(end - start) / double(CLOCKS_PER_SEC);
75+    cout<<"Time Taken "<<time_taken<<endl;
76+    cout << "After Sorting: "<<endl;
77+    display(arr, n);
78+ }
    
 
   
 
     
   
   
          
     
  
    
     
 
    
      
     
 
     
    You can’t perform that action at this time.
  
 
    
  
     
    
      
        
     
 
       
      
     
   
 
    
    
  
 
  
 
     
    
0 commit comments