From f8dc7d6617558ad128bb8906123970d04bdfc68a Mon Sep 17 00:00:00 2001 From: Parth640 <52998615+Parth640@users.noreply.github.com> Date: Sun, 30 Oct 2022 00:41:36 +0530 Subject: [PATCH] Create mergesort.py --- mergesort.py | 53 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 53 insertions(+) create mode 100644 mergesort.py diff --git a/mergesort.py b/mergesort.py new file mode 100644 index 0000000..14e4009 --- /dev/null +++ b/mergesort.py @@ -0,0 +1,53 @@ +def mergeSort(array): + if len(array) > 1: + + # r is the point where the array is divided into two subarrays + r = len(array)//2 + L = array[:r] + M = array[r:] + + # Sort the two halves + mergeSort(L) + mergeSort(M) + + i = j = k = 0 + + # Until we reach either end of either L or M, pick larger among + # elements L and M and place them in the correct position at A[p..r] + while i < len(L) and j < len(M): + if L[i] < M[j]: + array[k] = L[i] + i += 1 + else: + array[k] = M[j] + j += 1 + k += 1 + + # When we run out of elements in either L or M, + # pick up the remaining elements and put in A[p..r] + while i < len(L): + array[k] = L[i] + i += 1 + k += 1 + + while j < len(M): + array[k] = M[j] + j += 1 + k += 1 + + +# Print the array +def printList(array): + for i in range(len(array)): + print(array[i], end=" ") + print() + + +# Driver program +if __name__ == '__main__': + array = [6, 5, 12, 10, 9, 1] + + mergeSort(array) + + print("Sorted array is: ") + printList(array)