Skip to content

Commit dd63f29

Browse files
authored
Merge Sort Algorithm
1 parent 38a488c commit dd63f29

File tree

1 file changed

+45
-0
lines changed

1 file changed

+45
-0
lines changed
Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
__author__ = 'Avinash'
2+
3+
4+
def merge_sort(sort_list):
5+
print("splitting", sort_list)
6+
if len(sort_list) > 1:
7+
mid = len(sort_list) // 2
8+
leftHalf = sort_list[:mid]
9+
rightHalf = sort_list[mid:]
10+
11+
merge_sort(leftHalf)
12+
merge_sort(rightHalf)
13+
14+
i = 0
15+
j = 0
16+
k = 0
17+
while i < len(leftHalf) and j < len(rightHalf):
18+
if leftHalf[i] < rightHalf[j]:
19+
sort_list[k] = leftHalf[i]
20+
i = i + 1
21+
else:
22+
sort_list[k] = rightHalf[j]
23+
j = j + 1
24+
k = k + 1
25+
26+
while i < len(leftHalf):
27+
sort_list[k] = leftHalf[i]
28+
i = i + 1
29+
k = k + 1
30+
31+
while j < len(rightHalf):
32+
sort_list[k] = rightHalf[j]
33+
j = j + 1
34+
k = k + 1
35+
print("merging...", sort_list)
36+
37+
38+
lst = []
39+
size = int(input("Enter size of the list: \t"))
40+
41+
for i in range(size):
42+
elements = int(input("Enter an element: \t"))
43+
lst.append(elements)
44+
45+
merge_sort(lst)

0 commit comments

Comments
 (0)