Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- # Merge Sort | Time Complexity O(NlogN)
- def mergeSort(alist):
- print("Splitting ", alist)
- if len(alist) > 1:
- mid = len(alist) // 2
- lefthalf = alist[:mid]
- righthalf = alist[mid:]
- mergeSort(lefthalf)
- print("LeftHalf ", lefthalf)
- mergeSort(righthalf)
- print("RightHalf ", righthalf)
- i = 0
- j = 0
- k = 0
- while i < len(lefthalf) and j < len(righthalf):
- if lefthalf[i] < righthalf[j]:
- alist[k] = lefthalf[i]
- i = i+1
- else:
- alist[k] = righthalf[j]
- j = j+1
- k = k+1
- while i < len(lefthalf):
- alist[k] = lefthalf[i]
- i = i+1
- k = k+1
- while j < len(righthalf):
- alist[k] = righthalf[j]
- j = j+1
- k = k+1
- print("Merging ", alist)
- alist = [54, 26, 93, 17, 31, 44, 55, 20]
- mergeSort(alist)
- print(alist)
Add Comment
Please, Sign In to add comment