From 4242b35f87b8a698b65628667cc3b085b9a39213 Mon Sep 17 00:00:00 2001 From: Bhavik Date: Wed, 26 Oct 2022 23:03:23 +0530 Subject: [PATCH] Add Khadane algorithm to find the maximum sum subarray --- Algoritms/khadane.py | 38 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) create mode 100644 Algoritms/khadane.py diff --git a/Algoritms/khadane.py b/Algoritms/khadane.py new file mode 100644 index 00000000..863d1e05 --- /dev/null +++ b/Algoritms/khadane.py @@ -0,0 +1,38 @@ +# Python program to print largest contiguous array sum + +from sys import maxsize + +# Function to find the maximum contiguous subarray +# and print its starting and end index + + +def maxSubArraySum(a, size): + + max_so_far = -maxsize - 1 + max_ending_here = 0 + start = 0 + end = 0 + s = 0 + + for i in range(0, size): + + 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 + + print("Maximum contiguous sum is %d" % (max_so_far)) + print("Starting Index %d" % (start)) + print("Ending Index %d" % (end)) + + +# Driver program to test maxSubArraySum +a = [-2, -3, 4, -1, -2, 1, 5, -3] +maxSubArraySum(a, len(a)) +