AlgoDatSoSe24/SoSe24/lec02_maxfolge/cubic.py
Oliver Hofmann 74f4161fe7 Lecture 2
2024-04-11 10:05:53 +02:00

26 lines
854 B
Python

from SoSe24.algodat.foundation import AlgoDatArray, AlgoDatValue, read_int_sequence, MinusInf
from time import perf_counter as pfc
def maxfolge1(z: AlgoDatArray) -> (int, int, int):
maximum = AlgoDatValue(MinusInf())
current_sum = AlgoDatValue(0)
left = AlgoDatValue(0)
right = AlgoDatValue(0)
for i in range(z.size):
for j in range(i, z.size):
current_sum.value = 0
for k in range(i, j + 1):
current_sum += z[k]
if current_sum > maximum:
maximum.value = current_sum.value
left.value = i
right.value = j
return maximum.value, left, right
if __name__ == "__main__":
z = read_int_sequence("../../seq0.txt")
start = pfc()
print(maxfolge1(z))
print(f"Dauer: {pfc() - start:.4f}s")
AlgoDatValue.summary()