Algoritmos em Python

Subarray máximo com algoritmo de Kadane

Kadane decide em cada posição se continua ou recomeça.

O que é Subarray máximo com algoritmo de Kadane?

Kadane decide em cada posição se continua ou recomeça.

Encontre o segmento contíguo de maior soma.

Quando usar?

  • Entender algoritmos e estruturas de dados.
  • Observar cada etapa e tratar casos de borda.
  • Comparar tempo de execução e memória.

Código de exemplo

Executar 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]))

Saída esperada

6

Como funciona

Uma passagem resulta em tempo O(n) e memória O(1).

Altere os valores e execute o programa no compilador Python online CodeUtility sem instalar Python.

Exercícios práticos

Altere as entradas e teste casos de borda antes de usar conjuntos de dados maiores.

  1. Teste entrada vazia, um elemento e duplicados.
  2. Mostre o estado após cada etapa.
  3. Compare o desempenho com outra solução.
Executar no IDE Python →