Kadane's Algorithm Java
PROGRAM TO IMPLEMENT KADANE'S ALGORITHM
OUTPUT:
Maximum contiguous sum is 7 Starting index 2 Ending index 6
class
MAIN {
static
void
maxSubArraySum(
int
a[],
int
size)
{
int
max_so_far = Integer.MIN_VALUE,
max_ending_here =
0
,start =
0
,
end =
0
, s =
0
;
for
(
int
i =
0
; i < size; i++)
{
max_ending_here += a[i];
if
(max_so_far < max_ending_here)
{
max_so_far = max_ending_here;
start = s;
end = i;
}
if
(max_ending_here <
0
)
{
max_ending_here =
0
;
s = i +
1
;
}
}
System.out.println(
"Maximum contiguous sum is "
+ max_so_far);
System.out.println(
"Starting index "
+ start);
System.out.println(
"Ending index "
+ end);
}
// Driver code
public
static
void
main(String[] args)
{
int
a[] = { -
2
, -
3
,
4
, -
1
, -
2
,
1
,
5
, -
3
};
int
n = a.length;
maxSubArraySum(a, n);
}
}
Maximum contiguous sum is 7 Starting index 2 Ending index 6
Comments
Post a Comment