diff --git a/Kadane Algorithm b/Kadane Algorithm new file mode 100644 index 0000000..4659128 --- /dev/null +++ b/Kadane Algorithm @@ -0,0 +1,57 @@ +#include + +using namespace std; + + + +int maxSubArraySum(int a[], int size) + +{ + + int max_so_far = INT_MIN, max_ending_here = 0; + + + + for (int i = 0; i < size; i++) { + + max_ending_here = max_ending_here + a[i]; + + if (max_so_far < max_ending_here) + + max_so_far = max_ending_here; + + + + if (max_ending_here < 0) + + max_ending_here = 0; + + } + + return max_so_far; + +} + + + +// Driver Code + +int main() + +{ + + int a[] = { -2, -3, 4, -1, -2, 1, 5, -3 }; + + int n = sizeof(a) / sizeof(a[0]); + + + + // Function Call + + int max_sum = maxSubArraySum(a, n); + + cout << "Maximum contiguous sum is " << max_sum; + + return 0; + +} diff --git a/Kadane Algorithm code b/Kadane Algorithm code new file mode 100644 index 0000000..4659128 --- /dev/null +++ b/Kadane Algorithm code @@ -0,0 +1,57 @@ +#include + +using namespace std; + + + +int maxSubArraySum(int a[], int size) + +{ + + int max_so_far = INT_MIN, max_ending_here = 0; + + + + for (int i = 0; i < size; i++) { + + max_ending_here = max_ending_here + a[i]; + + if (max_so_far < max_ending_here) + + max_so_far = max_ending_here; + + + + if (max_ending_here < 0) + + max_ending_here = 0; + + } + + return max_so_far; + +} + + + +// Driver Code + +int main() + +{ + + int a[] = { -2, -3, 4, -1, -2, 1, 5, -3 }; + + int n = sizeof(a) / sizeof(a[0]); + + + + // Function Call + + int max_sum = maxSubArraySum(a, n); + + cout << "Maximum contiguous sum is " << max_sum; + + return 0; + +}