Skip to content

Instantly share code, notes, and snippets.

@ming2540
Created September 18, 2018 12:00
Show Gist options
  • Save ming2540/857fe57832dcf7b336966fe8bb59a96a to your computer and use it in GitHub Desktop.
Save ming2540/857fe57832dcf7b336966fe8bb59a96a to your computer and use it in GitHub Desktop.
void merge(int arr[], int left, int mid, int right){
int len1 = mid - left +1;
int len2 = right - mid;
int i;
int index1 = 0 , index2 = 0;
// create temp array
int left_array[len1];
int right_array[len2];
//take array to temp array
for(i=0;i<len1;i++){
left_array[i] = arr[left+i];
}
for(i=0;i<len2;i++){
right_array[i] = arr[mid+1+i];
}
i=left;
while(index1 < len1 && index2 < len2 ){
if(left_array[index1] < right_array[index2]){
arr[i] = left_array[index1];
index1++;
}
else {
arr[i] = right_array[index2];
index2++;
}
i++;
}
// check for other one
while(index1 < len1){
arr[i] = left_array[index1];
i++;
index1++;
}
while(index2 < len2){
arr[i] = right_array[index2];
i++;
index2++;
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment