AS-2_L19-20
AS-2_L19-20
AS-2_L19-20
Questions:
Write programs for the following problems using Divide and Conquer:
1. Maximum Subarray
2. Karatsuba faster integer multiplication algorithm
Question 1 Write programs for the Maximum Subarray using Divide and Conquer
Program or import java.util.Arrays;
Related import java.util.Scanner;
Content //22bci0092
//Sneh Patel
public class MaximumSubarray {
return crossingSubarray;
}
}
private static int[] findMaxCrossingSubarray(int[] numbers, int low, int mid, int
high) {
int leftMaxSum = Integer.MIN_VALUE;
int sum = 0;
int maxLeft = 0;
int sum = 0;
for (int num : numbers) {
sum += num;
}
return sum;
}
}
//Sneh Patel
//22BCI0092
Output: Case=f1
input=[3,-1,-1,10,-3,-2,4]
output=The Maximum Subarray is [3,-1,-1,10] with a max sum of=11
Your The code efficiently finds the maximum subarray using divide and conquer. It
Observation handles input, recursively divides arrays, calculates subarray sums, and outputs
the maximum subarray with its sum.
Question 2 Write programs for the Karatsuba faster integer multiplication algorithm using Divide
and Conquer
Program or import java.util.Scanner;
Related //22bci0092
Content //Sneh Patel
public class KaratsubaAlgorithm {
return prod;
}
}
if (numDigitsA != numDigitsB) {
if (a.length() == 2) {
System.out.println("With the brute-force approach, the required number of
multiplications is: 4");
System.out.println("With Karatsuba faster integer multiplication, the
required number of multiplications is: 3");
System.out.println("Result: " + result);
} else {
System.out.println("With the brute-force approach, the required number of
multiplications is: 16");
System.out.println("With Karatsuba faster integer multiplication, the
required number of multiplications is: 9");
System.out.println("Result: " + result);
}
scanner.close();
}
}
//22BCI0092
//SNEH patel
Output: Case 1:
Input:
Entermultiplicand:15
Entermultiplier:14
Output:
With brute force approach, the required number of multiplications is: 4
With Karatsuba faster integer multiplication, the required number of multiplications is: 3
Result: 210
Case 2:
Input:
Enter multiplicand: 253
Enter multiplier: 123
Output:
To apply Karatsuba faster integer multiplication, the number of digits in
multiplicand and multiplier must be a power of 2.
After conversion, the numbers become 2530 and 1230.
//22BCI0092
//Sneh Patel
Your The Karatsuba algorithm efficiently multiplies large numbers by recursively
Observation dividing them, reducing the number of multiplications needed, enhancing
computational efficiency for integer multiplication.