UTSAVS26 / PyVerse

PyVerse is an open-source collection of diverse Python projects, tools, and scripts, ranging from beginner to advanced, across various domains like machine learning, web development, and automation.
https://sites.google.com/view/pyverse-python-universe/
MIT License
59 stars 157 forks source link

Kadane Algorithm FOr maximum subarray #701

Open MithanshuHedau opened 2 hours ago

MithanshuHedau commented 2 hours ago

Have you completed your first issue?

Guidelines

Latest Merged PR Link

N/A

Project Description

Kadane's Algorithm: Maximum Subarray Problem Statement: Kadane's Algorithm is used to find the maximum sum of a contiguous subarray in a given array of integers. The goal is to identify a subarray (one or more elements) that has the largest sum.

Key Concepts: Contiguous Subarray: A subarray is a slice of the original array that consists of consecutive elements. Kadane’s Algorithm ensures that it considers every possible subarray to find the one with the maximum sum.

Kadane’s Algorithm uses a approach by maintaining two variables:

max_current: The maximum sum of the subarray that ends at the current position. max_global: The maximum sum found so far across all subarrays.

Steps: Initialization:

Set both max_current and max_global to the first element of the array. Iterate Over the Array:

For each subsequent element, update max_current by choosing the maximum of either: The current element itself (arr[i]), which implies starting a new subarray. The current element plus the previous max_current, meaning the subarray continues. Update max_global if max_current exceeds the previously recorded max_global. Return Result: After traversing the entire array, max_global will hold the largest sum of any contiguous subarray.

Kadane's Algorithm: Maximum Subarray Problem Statement: Kadane's Algorithm is used to find the maximum sum of a contiguous subarray in a given array of integers. The goal is to identify a subarray (one or more elements) that has the largest sum.

Key Concepts: Contiguous Subarray: A subarray is a slice of the original array that consists of consecutive elements. Kadane’s Algorithm ensures that it considers every possible subarray to find the one with the maximum sum.

Dynamic Programming Approach: Kadane’s Algorithm uses a dynamic programming approach by maintaining two variables:

max_current: The maximum sum of the subarray that ends at the current position. max_global: The maximum sum found so far across all subarrays. Steps: Initialization:

Set both max_current and max_global to the first element of the array. Iterate Over the Array:

For each subsequent element, update max_current by choosing the maximum of either: The current element itself (arr[i]), which implies starting a new subarray. The current element plus the previous max_current, meaning the subarray continues. Update max_global if max_current exceeds the previously recorded max_global. Return Result: After traversing the entire array, max_global will hold the largest sum of any contiguous subarray.

Time Complexity: O(n) where n is the number of elements in the array. Kadane's Algorithm runs in linear time since it processes each element of the array exactly once. Space Complexity: O(1) as the algorithm only uses a few extra variables to track the maximum sums.

Full Name

Mithanshu Rajesh Hedau

Participant Role

Gssoc-ext , hacktoberfest

github-actions[bot] commented 2 hours ago

🙌 Thank you for bringing this issue to our attention! We appreciate your input and will investigate it as soon as possible.

Feel free to join our community on Discord to discuss more!