Advertisement
Ritam_C

MergeSort_Python

Apr 10th, 2021
154
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 0.76 KB | None | 0 0
  1. def merge(arr, s1, e1, s2, e2):
  2.     l = []
  3.     i, j = s1, s2
  4.    
  5.     while i <= e1 and j <= e2:
  6.         if arr[i] < arr[j]:
  7.             l.append(arr[i])
  8.             i += 1
  9.         else:
  10.             l.append(arr[j])
  11.             j += 1
  12.     while i <= e1:
  13.         l.append(arr[i])
  14.         i += 1
  15.     while j <= e2:
  16.         l.append(arr[j])
  17.         j += 1
  18.    
  19.     for k in range(s1, e2+1):
  20.         arr[k] = l[k-s1]
  21.  
  22. def mergesort(arr, s, e):
  23.     if e > s:
  24.         mergesort(arr, s, s+(e-s)//2)
  25.         mergesort(arr, s+(e-s)//2+1, e)
  26.         merge(arr, s, s+(e-s)//2, s+(e-s)//2+1, e)
  27.  
  28. if __name__ == "__main__":
  29.     n = int(input())
  30.     arr = list(map(int, input().split()))
  31.     mergesort(arr, 0, n-1)
  32.     for i in arr:
  33.         print(i, end = ' ')
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement