Skip to content

Commit 546b3bb

Browse files
authored
Create Mergesort.py
1 parent eeb2499 commit 546b3bb

File tree

1 file changed

+67
-0
lines changed

1 file changed

+67
-0
lines changed

Mergesort.py

Lines changed: 67 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,67 @@
1+
def merge(arr, l, m, r):
2+
n1 = m - l + 1
3+
n2 = r - m
4+
5+
6+
L = [0] * (n1)
7+
R = [0] * (n2)
8+
9+
10+
for i in range(0, n1):
11+
L[i] = arr[l + i]
12+
13+
for j in range(0, n2):
14+
R[j] = arr[m + 1 + j]
15+
16+
17+
i = 0
18+
j = 0
19+
k = l
20+
21+
while i < n1 and j < n2:
22+
if L[i] <= R[j]:
23+
arr[k] = L[i]
24+
i += 1
25+
else:
26+
arr[k] = R[j]
27+
j += 1
28+
k += 1
29+
30+
31+
while i < n1:
32+
arr[k] = L[i]
33+
i += 1
34+
k += 1
35+
36+
while j < n2:
37+
arr[k] = R[j]
38+
j += 1
39+
k += 1
40+
41+
42+
43+
def mergeSort(arr, l, r):
44+
if l < r:
45+
46+
47+
m = l+(r-l)//2
48+
49+
50+
mergeSort(arr, l, m)
51+
mergeSort(arr, m+1, r)
52+
merge(arr, l, m, r)
53+
54+
55+
56+
arr = [12, 11, 13, 5, 6, 7]
57+
n = len(arr)
58+
print("Given array is")
59+
for i in range(n):
60+
print("%d" % arr[i],end=" ")
61+
62+
mergeSort(arr, 0, n-1)
63+
print("\n\nSorted array is")
64+
for i in range(n):
65+
print("%d" % arr[i],end=" ")
66+
67+

0 commit comments

Comments
 (0)