C Online Compiler
Example: Merge Two Sorted Arrays (Two-Pointer Approach)
C
C++
C#
Java
Python
PHP
main.c
STDIN
Run
// Merge Two Sorted Arrays (Two-Pointer Approach) #include
#include
// Required for malloc void mergeSortedArrays(int arr1[], int n1, int arr2[], int n2, int mergedArr[]) { int i = 0; // Pointer for arr1 int j = 0; // Pointer for arr2 int k = 0; // Pointer for mergedArr // Step 1: Compare elements from both arrays and place the smaller one while (i < n1 && j < n2) { if (arr1[i] <= arr2[j]) { mergedArr[k++] = arr1[i++]; } else { mergedArr[k++] = arr2[j++]; } } // Step 2: Add remaining elements from arr1 (if any) while (i < n1) { mergedArr[k++] = arr1[i++]; } // Step 3: Add remaining elements from arr2 (if any) while (j < n2) { mergedArr[k++] = arr2[j++]; } } int main() { int arr1[] = {1, 3, 5, 7}; int n1 = sizeof(arr1) / sizeof(arr1[0]); int arr2[] = {2, 4, 6, 8, 9}; int n2 = sizeof(arr2) / sizeof(arr2[0]); int n_merged = n1 + n2; int *mergedArr = (int *)malloc(n_merged * sizeof(int)); // Dynamically allocate memory if (mergedArr == NULL) { printf("Memory allocation failed!\n"); return 1; } // Step 4: Call the merge function mergeSortedArrays(arr1, n1, arr2, n2, mergedArr); // Step 5: Print the merged array printf("Merged array: "); for (int i = 0; i < n_merged; i++) { printf("%d ", mergedArr[i]); } printf("\n"); free(mergedArr); // Free dynamically allocated memory return 0; }
Output
Clear
ADVERTISEMENTS