-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathmerge.py
59 lines (47 loc) · 966 Bytes
/
merge.py
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
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
import time
import random
def merge(A,l,m,r):
B=[0]*100000
i=l
j=m
k=l
while i<m and j<=r:
if A[i]<A[j]:
B[k]=A[i]
i+=1
else:
B[k]=A[j]
j+=1
k+=1
while i<m:
B[k]=A[i]
i+=1
k+=1
while j<=r:
B[k]=A[j]
j+=1
k+=1
for k in range(l,r+1):
A[k]=B[k]
def mergeSort(A,l,r):
if l<r:
m=(l+r)//2
mergeSort(A,l,m)
mergeSort(A,m+1,r)
merge(A,l,m+1,r)
def display(A,n):
for i in range(0,n):
print(A[i],end=" ")
print(" ")
A=[0]*100000
print("Enter n:",end=" ")
n=int(input())
for i in range(0,n):
A[i]=random.randint(0,10)
# display(A,n)
start=time.time()
mergeSort(A,0,n-1)
end=time.time()
# display(A,n)
diff=end-start
print(f"The time taken is {diff:.6f} seconds")