Skip to main content

Kadane's Algorithm | The-Algorithm-Drive | MyCodingNetwork

Kadane's Algorithm

Kadane’s algorithm is used to find largest contagious subarray sum for a given array. It is one of the most common types of algorithms used to find the subarray with largest sum. The time complexity of this algorithm is O(N).


    Output:  

     

Code Explanation:

On line 4, there’s an int array variable a[ ], which is the array on which we have to perform our task. We have stored the value of the array, in variable l.

cur_max, is a temporary variable for traversing the array and storing positive sum occurring and update it after each iteration. global_max, is a variable for storing the highest sum of subarray. ‘start’ variable stores the starting index of the desired subarray and ‘end’ variable stores the last index of that subarray, that is, contagious subarray with the highest sum.

Working:

Talking about the working of this algorithm, it uses one for loop and the entire operation can be performed in just one traversal of the array. One of the limitations of this algorithm is that it needs at least one positive number in the array otherwise it will not work.


Algorithm:

1.   Start

2.   Declare an array with at least one positive number.

3.   Declare two counter variables, first, cur_max for current sum and the other global_max for global sum. The variable global_max will be initialized with minimum integer value. The variable global_max will store largest sum of the required subarray.

4.   Declare a for loop starting from the first index and terminating at the last index. Inside the for loop,

cur_max += a[i]

if(cur_max>global_max)

{

global_max=cur_max

}

if (cur_max<0)

{

cur_max=0

}

End of for loop

 

Variable cur_max is used to add the elements of the array at each iteration and compare it with the value of global_max at each iteration. If the value of global_max is less than cur_max then assign it with the value of cur_max. If the value of cur_max is less than 0 then assign cur_max with the value 0.

5.   The value stored in the global_max variable is the output of our program.

   

Hope you liked this explanation, for any doubt or feedback you can comment down in the comment section.

Popular posts from this blog

Pattern 2 | Java

  Problem Statement: Write a program to draw the following pattern: * * * * * * * * * * * * * * * (take a variable n which decides the number of rows, for above example, n=5) THE CODE Output: *  * *  * * *  * * * *  * * * * *  * * * * * *          * * * * * * *        * * * * * * * *      * * * * * * * * *    * * * * * * * * * * Simplification : In the above problem, the value of n is 10 (i.e., the number of rows are 10) 1. In the first for loop we have i as the counter variable with initial value of 1 and having a condition i.e. i should be less than or equal to n.  It has a print statement after the second for loop,  System.out.println(); w hich is used for changing the row, each time for the second for loop terminates. 2. In the second for loop we have j as the counter variable with initial value of 1 having a condition i.e. j  should be  less than or equal to i (the value of i  will be as per the current ongoing iteration). Further it has an updation statement j++  Inside the seco

Code #1 | Hello Java | Basics of Java

Today starting with a very basic coding program in Java. So, the program is Write a program in Java to print "Hello Java!" Output: Hello Java!

Bubble Sort | Java & Python | MyCodingNetwork | Alok Tripathi

  Bubble Sort is a simple sorting algorithm that works by repeatedly comparing and swapping adjacent elements in an array until they are in the correct order. It is called bubble sort because the smaller elements "bubble" to the top of the array, while the larger elements sink to the bottom. Quick Video Explanation: How Bubble Sort Works Bubble sort works by iterating through the array from left to right and comparing each pair of adjacent elements. If the element on the left is larger than the element on the right, they are swapped. This way, the largest element in the array moves to the rightmost position in each iteration. This process is repeated until no more swaps are needed, which means the array is sorted. To illustrate how bubble sort works, let's use the example of sorting the array [30,90,50,10,40] in ascending order. First Iteration/Pass: The first step is to compare the first two elements, 30 and 90. Since 30 is smaller than 90, they are already i