Algoritmos en Python

Subarray máximo con el algoritmo de Kadane

Kadane decide en cada posición si continuar o empezar de nuevo.

¿Qué es Subarray máximo con el algoritmo de Kadane?

Kadane decide en cada posición si continuar o empezar de nuevo.

Encuentra el segmento contiguo con mayor suma.

¿Cuándo se utiliza?

  • Comprender algoritmos y estructuras de datos.
  • Observar cada paso y tratar casos límite.
  • Comparar tiempo de ejecución y memoria.

Código de ejemplo

Ejecutar código →
main.py
def maximum_subarray_sum(values):
    current = best = values[0]
    for value in values[1:]:
        current = max(value, current + value)
        best = max(best, current)
    return best

print(maximum_subarray_sum([-2, 1, -3, 4, -1, 2, 1, -5, 4]))

Resultado esperado

6

Cómo funciona

Un único recorrido produce tiempo O(n) y memoria O(1).

Cambia los valores y ejecuta el programa en el compilador Python online de CodeUtility sin instalar Python.

Ejercicios prácticos

Modifica las entradas y prueba casos límite antes de usar conjuntos de datos mayores.

  1. Prueba una entrada vacía, un elemento y duplicados.
  2. Muestra el estado después de cada paso.
  3. Compara el rendimiento con otra solución.
Ejecutar en el IDE de Python →