MyNova DSA - Module 3 Programming Assignment
MyNova DSA - Module 3 Programming Assignment
Code:
import java.util.Random;
private static void merge(int[] arr, int leftFirst, int leftLast, int
rightFirst, int rightLast){
int[] aux = new int[arr.length]; // extra space, this is downside of this
algorithm
int index = leftFirst;
int saveFirst = leftFirst;
while(leftFirst <= leftLast && rightFirst <= rightLast){
if(arr[leftFirst] <= arr[rightFirst]){
aux[index++] = arr[leftFirst++];
}else{
aux[index++] = arr[rightFirst++];
}
}
while(leftFirst <= leftLast){
aux[index++] = arr[leftFirst++];
}
while(rightFirst <= rightLast){
aux[index++] = arr[rightFirst++];
}
for(index = saveFirst; index <= rightLast; index++){
arr[index] = aux[index];
}
}
int N = Integer.parseInt(args[0]);
int A = Integer.parseInt(args[1]);
int B = Integer.parseInt(args[2]);
if (N <= 0 || A >= B) {
System.out.println("Invalid input. N must be positive and A must be
less than B.");
return;
}
mergeSort(arr);
System.out.println("Sorted array:");
for (int num : arr) {
System.out.print(num + " ");
}
System.out.println();