C++ Online Compiler
Example: Merge Sort Implementation in C++
C
C++
C#
Java
Python
PHP
main.cpp
STDIN
Run
// Merge Sort Implementation #include <iostream> #include <vector> // Using vector for dynamic array in main, but merge sort works with raw arrays too. // Function to merge two sorted subarrays void merge(int arr[], int left, int mid, int right) { int n1 = mid - left + 1; int n2 = right - mid; // Create temporary arrays int* L = new int[n1]; int* R = new int[n2]; // Copy data to temporary arrays L[] and R[] for (int i = 0; i < n1; i++) L[i] = arr[left + i]; for (int j = 0; j < n2; j++) R[j] = arr[mid + 1 + j]; // Merge the temporary arrays back into arr[left..right] int i = 0; // Initial index of first subarray int j = 0; // Initial index of second subarray int k = left; // Initial index of merged subarray while (i < n1 && j < n2) { if (L[i] <= R[j]) { arr[k] = L[i]; i++; } else { arr[k] = R[j]; j++; } k++; } // Copy the remaining elements of L[], if any while (i < n1) { arr[k] = L[i]; i++; k++; } // Copy the remaining elements of R[], if any while (j < n2) { arr[k] = R[j]; j++; k++; } // Free the dynamically allocated memory delete[] L; delete[] R; } // Placeholder for main function to demonstrate calling merge conceptually // int main() { // int arr[] = {3, 5, 2, 4}; // Example: merge([3,5], 0, 0, 1) and ([2,4], 2, 2, 3) // // After sorting subarrays: [3,5] and [2,4] // // Call merge(arr, 0, 1, 3) where arr currently is {3,5,2,4} // // Expected output of merge would transform arr to {2,3,4,5} // return 0; // }
Output
Clear
ADVERTISEMENTS