-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy path7_merge_sort.py
More file actions
44 lines (36 loc) · 1.21 KB
/
7_merge_sort.py
File metadata and controls
44 lines (36 loc) · 1.21 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
def mergeSort(list):
if len(list) >= 2:
midPoint = len(list) // 2
leftHalf = list[:midPoint]
rightHalf = list[midPoint:]
mergeSort(leftHalf)
mergeSort(rightHalf)
leftPointer = 0
rightPointer = 0
mainPointer = 0
while leftPointer < len(leftHalf) and rightPointer < len(rightHalf):
if rightHalf[rightPointer] < leftHalf[leftPointer]:
list[mainPointer] = rightHalf[rightPointer]
rightPointer += 1
mainPointer += 1
else:
list[mainPointer] = leftHalf[leftPointer]
leftPointer += 1
mainPointer += 1
while leftPointer < len(leftHalf):
list[mainPointer] = leftHalf[leftPointer]
leftPointer += 1
mainPointer += 1
while rightPointer < len(rightHalf):
list[mainPointer] = rightHalf[rightPointer]
rightPointer += 1
mainPointer += 1
list = list()
n = int(raw_input('Enter the no. of elements:'))
#get the list of number:
for i in range(0,n):
temp = int(raw_input('Enter Element:'))
list.append(temp)
mergeSort(list)
print('\nThe sorted list:')
print(list)