Skip to content

Commit 17dcbc7

Browse files
committed
create merge_sort.py
1 parent 64a9d0f commit 17dcbc7

File tree

1 file changed

+40
-0
lines changed
  • chapters/sorting_searching/merge/code/python

1 file changed

+40
-0
lines changed
Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
import random
2+
3+
4+
def merge(l1, l2):
5+
i = j = 0
6+
l = []
7+
8+
while (i < len(l1)) and (j < len(l2)):
9+
if l1[i] < l2[j]:
10+
l.append(l1[i])
11+
i += 1
12+
else:
13+
l.append(l2[j])
14+
j += 1
15+
16+
l.extend(l1[i:len(l1)])
17+
l.extend(l2[j:len(l2)])
18+
19+
return l
20+
21+
22+
def merge_sort(l):
23+
if len(l) == 1:
24+
return l
25+
26+
l1 = merge_sort(l[0:len(l)//2])
27+
l2 = merge_sort(l[len(l)//2:len(l)])
28+
29+
return merge(l1, l2)
30+
31+
32+
def main():
33+
number = [random.randint(0, 10000) for _ in range(10)]
34+
print("Before Sorting {}".format(number))
35+
number = merge_sort(number)
36+
print("After Sorting {}".format(number))
37+
38+
39+
if __name__ == "__main__":
40+
main()

0 commit comments

Comments
 (0)