forked from hofmannol/AlgoDatSoSe25
Merge remote-tracking branch 'origin/main'
This commit is contained in:
commit
4aeb01c003
2
.idea/AlgoDatSoSe25.iml
generated
2
.idea/AlgoDatSoSe25.iml
generated
@ -5,7 +5,7 @@
|
||||
<excludeFolder url="file://$MODULE_DIR$/.venv" />
|
||||
<excludeFolder url="file://$MODULE_DIR$/venv" />
|
||||
</content>
|
||||
<orderEntry type="jdk" jdkName="Python 3.12 (AlgoDatSoSe25)" jdkType="Python SDK" />
|
||||
<orderEntry type="jdk" jdkName="Python 3.12 (SoSe25)" jdkType="Python SDK" />
|
||||
<orderEntry type="sourceFolder" forTests="false" />
|
||||
</component>
|
||||
</module>
|
@ -42,12 +42,12 @@ def max_sequence_3(z: MemoryArray, l = None, r = None):
|
||||
if l is None:
|
||||
l = Literal(0)
|
||||
if r is None:
|
||||
r = Literal(len(z)-1)
|
||||
r = z.length().pred()
|
||||
if l == r:
|
||||
return z[l], l, r
|
||||
m = Literal((int(l) + int(r)) // 2)
|
||||
lm, ll, lr = max_sequence_3(z, l, m)
|
||||
rm, rl, rr = max_sequence_3(z, Literal(int(m) + 1), r)
|
||||
rm, rl, rr = max_sequence_3(z, m.succ(), r)
|
||||
zm, zl, zr = find_between(z, l, m, r)
|
||||
if lm >= rm and lm >= zm:
|
||||
return lm, ll, lr
|
||||
@ -59,7 +59,7 @@ def find_between(z: MemoryArray, l, m, r):
|
||||
max_sum = MemoryCell(MIN_VALUE)
|
||||
s = MemoryCell(0)
|
||||
border = MemoryCell()
|
||||
for i in mrange(m, int(l)-1, -1):
|
||||
for i in mrange(m, l.pred(), -1):
|
||||
s += z[i]
|
||||
if s > max_sum:
|
||||
max_sum.set(s)
|
||||
@ -68,7 +68,7 @@ def find_between(z: MemoryArray, l, m, r):
|
||||
left_border = Literal(border)
|
||||
max_sum = MemoryCell(MIN_VALUE)
|
||||
s.set(0)
|
||||
for i in mrange(int(m) + 1, int(r)+1):
|
||||
for i in mrange(m.succ(), r.succ()):
|
||||
s += z[i]
|
||||
if s > max_sum:
|
||||
max_sum.set(s)
|
||||
@ -91,7 +91,7 @@ def max_sequence_4(z: MemoryArray):
|
||||
r.set(i)
|
||||
if curr_sum < Literal(0):
|
||||
curr_sum.set(0)
|
||||
curr_left.set(int(i) + 1)
|
||||
curr_left.set(i.succ())
|
||||
return max_sum, l, r
|
||||
|
||||
def example(max_sequence_func):
|
||||
|
Loading…
x
Reference in New Issue
Block a user