Skip to content

Instantly share code, notes, and snippets.

@amankharwal
Created December 26, 2020 16:14
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save amankharwal/19637bee73b52caeb89489281b22b00b to your computer and use it in GitHub Desktop.
Save amankharwal/19637bee73b52caeb89489281b22b00b to your computer and use it in GitHub Desktop.
#include<iostream>
using namespace std;
void merge(int arr[], int l, int mid, int r){
int n1 = mid - l + 1;
int n2 = r - mid;
int a[n1];
int b[n2];
for (int i = 0; i < n1; i++){
a[i] = arr[l + i];
}
for (int i = 0; i < n2; i++){
b[i] = arr[mid + 1 + i];
}
int i = 0;
int j = 0;
int k = 1;
while (i < n1 && j < n2){
if (a[i] < b[j]){
arr[k] = a[i];
k++; i++;
}
else{
arr[k] = b[j];
k++; j++;
}
}
while (i < n1){
arr[k] = a[i];
k++; i++;
}
while (j < n2){
arr[k] = b[j];
k++; j++;
}
}
void mergeSort(int arr[], int l, int r){
if (l < r){
int mid = (l + r) / 2;
mergeSort(arr, l, mid);
mergeSort(arr, mid + 1, r);
merge(arr, l, mid, r);
}
}
int main(){
int arr[]={5, 4, 3, 2, 1};
mergeSort(arr, 0, 4);
for(int i=0; i<5; i++){
cout<<arr[i]<<" ";
}
cout<<endl;
return 0;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment