1 parent 61f7f94 commit b6cc37dCopy full SHA for b6cc37d
1 file changed
divide_and_conquer/mergesort.py
@@ -0,0 +1,45 @@
1
+def merge(a,b,m,e):
2
+ l=a[b:m+1]
3
+ r=a[m+1:e+1]
4
+ k=b
5
+ i=0
6
+ j=0
7
+ while i<len(l) and j<len(r):
8
+ #change sign for Descending order
9
+ if l[i]<r[j]:
10
+ a[k]=l[i]
11
+ i+=1
12
+ else:
13
+ a[k]=r[j]
14
+ j+=1
15
+ k+=1
16
+ while i<len(l):
17
18
19
20
+ while j<len(r):
21
22
23
24
+ return a
25
+
26
+def mergesort(a,b,e):
27
+ """
28
+ >>> mergesort([3,2,1],0,2)
29
+ [1, 2, 3]
30
+ >>> mergesort([3,2,1,0,1,2,3,5,4],0,8)
31
+ [0, 1, 1, 2, 2, 3, 3, 4, 5]
32
33
+ if b<e:
34
+ m = (b+e)//2
35
+ #print("ms1",a,b,m)
36
+ mergesort(a,b,m)
37
+ #print("ms2",a,m+1,e)
38
+ mergesort(a,m+1,e)
39
+ #print("m",a,b,m,e)
40
+ merge(a,b,m,e)
41
42
43
+if __name__ == "__main__":
44
+ import doctest
45
+ doctest.testmod()
0 commit comments