Example: If elements of array A = 1, 4, 6, 9, 15
Elements of array B = 2, 5, 8, 10
Merged array in ascending order = 1, 2, 4, 5, 6, 8, 9, 10, 15
Required knowledge
Basic C programming, If else, For loop, ArrayProgram to merge two sorted array in ascending order
/** * C program to merge two sorted array in ascending order */ #include <stdio.h> #define MAX_SIZE 100 //Maximum size of the array int main() { int arr1[MAX_SIZE], arr2[MAX_SIZE], arr3[MAX_SIZE]; int size1, size2, size3; int i, j, k; /* * Read size of first array and elements in first array */ printf("Enter the size of first array : "); scanf("%d", &size1); printf("Enter elements in first array : "); for(i=0; i<size1; i++) { scanf("%d", &arr1[i]); } /* * Reads size of second array and elements in second array */ printf("\nEnter the size of second array : "); scanf("%d", &size2); printf("Enter elements in second array : "); for(i=0; i<size2; i++) { scanf("%d", &arr2[i]); } /* size of merged array is size_of_first_array + size_of_second_array */ size3 = size1 + size2; /* * Merge two array in ascending order */ for(i=0, j=0, k=0; i<size3; i++) { /* * If all elements of one array * is merged to final array */ if(j >= size1 || k >= size2) { break; } if(arr1[j] < arr2[k]) { arr3[i] = arr1[j]; j++; } else { arr3[i] = arr2[k]; k++; } } /* * Merge the remaining elements of array */ while(j < size1) { arr3[i] = arr1[j]; i++; j++; } while(k < size2) { arr3[i] = arr2[k]; i++; k++; } /* * Prints the merged array */ printf("\nArray merged in ascending order : "); for(i=0; i<size3; i++) { printf("%d\t", arr3[i]); } return 0; }
Output
Enter the size of first array : 5
Enter elements in first array : 1 4 6 9 15
Enter the size of second array : 4
Enter elements in second array : 2 5 8 10
Array merged in ascending order : 1 2 4 5 6 8 9 10 15
Enter elements in first array : 1 4 6 9 15
Enter the size of second array : 4
Enter elements in second array : 2 5 8 10
Array merged in ascending order : 1 2 4 5 6 8 9 10 15
Program to merge two sorted array in descending order
/** * C program to merge two sorted array in descending order */ #include <stdio.h> #define MAX_SIZE 100 //Maximum size of the array int main() { int arr1[100], arr2[100], arr3[200]; int size1, size2, size3; int i, j, k; /* * Reads size of first array and element in first array */ printf("Enter the size of first array : "); scanf("%d", &size1); printf("Enter elements in first array : "); for(i=0; i<size1; i++) { scanf("%d", &arr1[i]); } /* * Read size of second array and elements in second array */ printf("\nEnter the size of second array : "); scanf("%d", &size2); printf("Enter elements in second array : "); for(i=0; i<size2; i++) { scanf("%d", &arr2[i]); } /* size of merged array is size_of_first_array + size_of_second_array */ size3 = size1 + size2; /* * Merges both array in descending order */ for(i=0, j=0, k=0; i<size3; i++) { /* * If all elements of one array * is merged to final array */ if(j >= size1 || k >= size2) { break; } if(arr1[j] > arr2[k]) { arr3[i] = arr1[j]; j++; } else { arr3[i] = arr2[k]; k++; } } /* * Merge the remaining elements of array */ while(j < size1) { arr3[i] = arr1[j]; i++; j++; } while(k < size2) { arr3[i] = arr2[k]; i++; k++; } /* * Prints the merged array */ printf("\nArray merged in descending order : "); for(i=0; i<size3; i++) { printf("%d\t", arr3[i]); } return 0; }
Output
Enter the size of first array : 5
Enter elements in first array : 15 9 6 4 1
Enter the size of second array : 4
Enter elements in second array : 10 8 5 2
Array merged in descending order : 15 10 9 8 6 5 4 2 1
Enter elements in first array : 15 9 6 4 1
Enter the size of second array : 4
Enter elements in second array : 10 8 5 2
Array merged in descending order : 15 10 9 8 6 5 4 2 1
Note: In order to merge array in ascending or descending order array elements of both array must be sorted in ascending or descending order.
Happy coding ;)
You may also like
- Array and Matrix programming exercises index.
- C program to copy all elements of an array to another array.
- C program to find maximum and minimum element in an array.
- C program to insert an element in array.
- C program to delete an element from array at given position.
- C program to delete all duplicate elements from an array.
- C program to find all unique elements in an array.
- C program to count frequency of each elements in array.
- C program to sort elements of array in ascending order.
- C program to find lower triangular matrix.
- C program to find transpose of a matrix.