You are on page 1of 1

/home/pablo/Dropbox/02 - Docencia/Paradigmas de Programación/code/python/MCS.

py

1 def MCS1(A):
2 n = len(A)
3 suma_max = 0
4 for i in range(0,n):
5 for j in range(i,n):
6 s = 0
7 for k in range(i,j+1):
8 s = s + A[k]
9 if s > suma_max:
10 suma_max = s
11 return suma_max
12
13 def MCS2(A):
14 n = len(A)
15 suma_max = 0
16 for i in range(0,n):
17 s = 0
18 for j in range(i,n):
19 s = s + A[j]
20 if s > suma_max:
21 suma_max = s
22 return suma_max
23
24 def MCS_Opt(A):
25 n = len(A)
26 suma_max = 0
27 s = 0
28 for i in range(0,n):
29 s = s + A[i]
30 if s > suma_max:
31 suma_max = s
32 elif s < 0:
33 s = 0
34 return suma_max
35
36 def MCS(A):
37 return MCS_R(A,0,len(A)-1)
38
39 def MCS_R(A,i,j):
40 if i == j:
41 if A[i] < 0:
42 return 0, 0, 0, A[i]
43 else:
44 return A[i], A[i], A[i], A[i]
45 else:
46 m = (i+j)/2
47 M1,L1,R1,A1 = MCS_R(A,i,m)
48 M2,L2,R2,A2 = MCS_R(A,m+1,j)
49 return max(M1, M2, R1 + L2), max(L1, A1 + L2), max(R1 + A2, R2), A1 + A2
50
51
52

1 of 1 02/21/2018 10:08 PM

You might also like