In computer science, the maximum subarray problem is the task of finding the contiguous subarray within a one-dimensional array of numbers which has the largest sum. For example, for the sequence of values −2, 1, −3, 4, −1, 2, 1, −5, and 4, the contiguous subarray with the largest sum is 4, −1, 2, 1, with sum 6. (wikipedia.org, 2007).
To solve this problem, we will use Kadane’s Algorithm. It’s essence is in the consistent checking of all positive integers in the array, searching for the contiguous segments and tracking their sums. Every time we get a positive sum we compare it with the current maximum sum, and if it’s bigger, we consider the current sum to be maximal.
Java implementation:
[code language=”java”]
public class Kadane {
public static void main(String[] args) {
int[] array = { 2, -4, -6, -2, -8, -2, 1, 6, 3, 6 };
searchMaxSub(array);
}
public static void searchMaxSub(int[] inArr) {
int maxStartInd = 0;
int maxEndInd = 0;
int maxSum = Integer.MIN_VALUE;
int aggregateSum = 0;
int tempMaxInd = 0;
for (int currInd = 0; currInd < inArr.length; currInd++) { int arrayItem = inArr[currInd]; aggregateSum += arrayItem; if (aggregateSum>maxSum) {
maxSum = aggregateSum;
maxStartInd = tempMaxInd;
maxEndInd = currInd;
}
else if (aggregateSum<0) {
tempMaxInd = currInd + 1;
aggregateSum = 0;
}
}
System.out.println("Max sum : " + maxSum);
System.out.println("Max start index : " + maxStartInd);
System.out.println("Max end index : " + maxEndInd);
}
}
[/code]
Computer Science Assignments Assistance 24/7
Check out the new sample created by our experienced programming specialists. The sample that gives you a maximum subarray problem solved can help you deal with your own assignment or simply inspire you to work harder and find the solution to your task. We also advise you to check other samples at our blog, for example, one of the summation examples, since you never know which one will help you to solve the task or inspire you to try a little bit harder. Don’t worry, however, if you still have no idea how to do this task – you have a team of professionals to provide computer science assignments help for you.
All you need to get assignment help is fill in the order form in the upper right corner and upload the files that are crucial for your assignment. Also, don’t forget to specify whether your assignment has to be based upon a specific research, theory or method. After that, you will be asked to choose an expert you liked the most from those who have placed their bids under your order. You can always chat with your expert and ask any questions you have during the working process, and you will be asked to pay only after you receive a maximum subarray problem solved the way you needed it to be solved.