C Programs Tutorials | IT Developer
IT Developer

Java Programs - Solved 2021 Theory Paper ISC Computer Science



Share with a Friend

Solved 2021 Thory Paper ISC Computer Science

Class 12 - ISC Computer Science Solved Theory Papers

Merge Two Arrays Program - ISC 2021 Theory

Design a class MergeArray to merge two single-dimensional sorted arrays into one single-dimensional array in ascending order without using any sorting technique.

 

Example:
Array 1: {2, 3, 6, 9, 11, 19, 26}
Array 2: {1, 2, 5, 7, 12, 45}
Merged Array = {1, 2, 2, 3, 5, 6, 7, 9, 11, 12, 19, 26, 45}

Some of the members of the class are given below:

Class name: MergeArray
Data members/instance variables:
arr1[]: to store integers in the first array
arr2[]: to store integers in the second array
arr[]: to store the elements of both the arrays in ascending order
m: integer to store the size of the first array
n: integer to store the size of the second array


Methods/Member functions:
MergeArray(int mm, int nn): parameterized constructor to initialize the data members m = mm and n = nn
void fillarray(): to enter integer elements in both the arrays arr1[] and arr2[] in ascending order

void merge(): merges the elements of arr1[] and arr2[] and stores it in arr[] in ascending order
void display(): displays the elements of the merged array

Specify the class MergeArray giving details of the constructor(), void fillarray(), void merge() and void display(). Define a main() function to create an object and call the functions accordingly to enable the task.

 

import java.util.Scanner; class MergeArray{ int arr1[]; int arr2[]; int arr[]; int m; int n; public MergeArray(int mm, int nn){ m = mm; n = nn; arr1 = new int[m]; arr2 = new int[n]; arr = new int[m + n]; } public void fillarray(){ Scanner in = new Scanner(System.in); System.out.println("Enter elements for array 1:"); for(int i = 0; i < m;){ if(i == 0) arr1[i++] = Integer.parseInt(in.nextLine()); else{ int temp = Integer.parseInt(in.nextLine()); while(temp < arr1[i - 1]){ System.out.print("Re-enter the number: "); temp = Integer.parseInt(in.nextLine()); } arr1[i++] = temp; } } System.out.println("Enter elements for array 2:"); for(int i = 0; i < n;){ if(i == 0) arr2[i++] = Integer.parseInt(in.nextLine()); else{ int temp = Integer.parseInt(in.nextLine()); while(temp < arr2[i - 1]){ System.out.print("Re-enter the number: "); temp = Integer.parseInt(in.nextLine()); } arr2[i++] = temp; } } } public void merge(){ int index = 0; int i = 0, j = 0; for(; i < m && j < n;){ if(arr1[i] < arr2[j]) arr[index++] = arr1[i++]; else arr[index++] = arr2[j++]; } while(i < m) arr[index++] = arr1[i++]; while(j < n) arr[index++] = arr2[j++]; } public void display(){ for(int i = 0; i < arr.length; i++) System.out.print(arr[i] + " "); System.out.println(); } public static void main(String[] args){ Scanner in = new Scanner(System.in); System.out.print("Size of array 1: "); int x = Integer.parseInt(in.nextLine()); System.out.print("Size of array 2: "); int y = Integer.parseInt(in.nextLine()); MergeArray obj = new MergeArray(x, y); obj.fillarray(); obj.merge(); System.out.print("Merged array: "); obj.display(); } }

Output

 

OUTPUT 1: 
Size of array 1: 7
Size of array 2: 6
Enter elements for array 1:
2
3
6
9
11
19
26
Enter elements for array 2:
1
2
5
7
12
45
Merged array: 1 2 2 3 5 6 7 9 11 12 19 26 45