Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- def merge(arr, l, m, r):
- n1 = m - l + 1
- n2 = r - m
- L = [0] * (n1)
- R = [0] * (n2)
- for i in range(0, n1):
- L[i] = arr[l + i]
- for j in range(0, n2):
- R[j] = arr[m + 1 + j]
- i = 0
- j = 0
- k = l
- while i < n1 and j < n2:
- if L[i] <= R[j]:
- arr[k] = L[i]
- i += 1
- else:
- arr[k] = R[j]
- j += 1
- k += 1
- while i < n1:
- arr[k] = L[i]
- i += 1
- k += 1
- while j < n2:
- arr[k] = R[j]
- j += 1
- k += 1
- #@end-editable@
- display(arr)
- return 0
- def mergeSort(arr,l,r):
- #@start-editable@
- if l < r:
- m = l+(r-l)//2
- mergeSort(arr, l, m)
- mergeSort(arr, m+1, r)
- merge(arr, l, m, r)
- #@end-editable@
- return 0
- def display(A):
- for i in range(len(A)):
- print(A[i],end=" ")
- print("")
- return 0
- def main():
- arr=list(map(int, input().split()))
- display(arr)
- mergeSort(arr,0,len(arr)-1)
- main()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement