George_Zagorsky_1

Merge sort

Jan 24th, 2023
729
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 0.77 KB | None | 0 0
  1.  
  2. def sl(left, right):
  3.     i = j = 0
  4.     res = []
  5.     while i < len(left) and j < len(right):
  6.         if left[i] < right[j]:
  7.             res.append(left[i])
  8.             i += 1
  9.         else:
  10.             res.append(right[j])
  11.             j += 1
  12.  
  13.     if i < len(left):
  14.         for index in range(i, len(left)):
  15.             res.append(left[index])
  16.     else:
  17.         for index in range(j, len(right)):
  18.             res.append(right[index])
  19.     print(f"arr is {res}")
  20.     return res
  21.  
  22.  
  23. # 5, 4
  24. # 5
  25. def merge(arr):
  26.     if len(arr) < 2:
  27.         return arr
  28.     else:
  29.         index = len(arr) // 2
  30.         left = merge(arr[:index]) # [3]
  31.         right = merge(arr[index:]) # [3, 4, 5]
  32.         return sl(left, right) # [4, 5]
  33.  
  34. arr = [5, 4, 3, 2, 1]
  35. print(merge(arr))
  36.  
Advertisement
Add Comment
Please, Sign In to add comment