Advertisement
faunuss

MergeSort

Jun 6th, 2017
68
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 0.78 KB | None | 0 0
  1. def merge(first, second):
  2.     result = []
  3.     i = 0
  4.     j = 0
  5.     while i < len(first) and j < len(second):
  6.         if first[i] <= second[j]:
  7.             result.append(first[i])
  8.             i += 1
  9.         else:
  10.             result.append(second[j])
  11.             j += 1
  12.     while i < len(first):
  13.         result.append(first[i])
  14.         i += 1
  15.     while j < len(second):
  16.         result.append(second[j])
  17.         j += 1
  18.     return result
  19.  
  20.  
  21. def merge_sort(arr):
  22.     if len(arr) == 1:
  23.         return arr
  24.     l = len(arr)
  25.     first = merge_sort(arr[0:(round(l/2))])
  26.     second = merge_sort(arr[round(l/2):l])
  27.     return merge(first, second)
  28.  
  29. a = [10, 5, 6, 3, 2, 1, 9, 0, 12, 13, 23, 124,124,534,2345,534,234,12312,423412,546,2342,234,45,54,234]
  30. b = merge_sort(a)
  31. print(b)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement