From 4741b7668ada5467e393c01fa98bd9f228a9f13a Mon Sep 17 00:00:00 2001 From: jeslinn <92252997+jeslinn@users.noreply.github.com> Date: Tue, 12 Oct 2021 16:21:35 +0530 Subject: [PATCH] mega sort --- sorting/megasort.py | 71 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 71 insertions(+) create mode 100644 sorting/megasort.py diff --git a/sorting/megasort.py b/sorting/megasort.py new file mode 100644 index 0000000..e06c715 --- /dev/null +++ b/sorting/megasort.py @@ -0,0 +1,71 @@ + + +def merge(arr, l, m, r): + n1 = m - l + 1 + n2 = r - m + + + L = [0] * (n1) + R = [0] * (n2) + + + for i in range(0, n1): + L[i] = arr[l + i] + + for j in range(0, n2): + R[j] = arr[m + 1 + j] + + + i = 0 + j = 0 + k = l + + while i < n1 and j < n2: + if L[i] <= R[j]: + arr[k] = L[i] + i += 1 + else: + arr[k] = R[j] + j += 1 + k += 1 + + + while i < n1: + arr[k] = L[i] + i += 1 + k += 1 + + + while j < n2: + arr[k] = R[j] + j += 1 + k += 1 + + + + +def mergeSort(arr, l, r): + if l < r: + + + m = l+(r-l)//2 + + + mergeSort(arr, l, m) + mergeSort(arr, m+1, r) + merge(arr, l, m, r) + + + +arr = [12, 11, 13, 5, 6, 7] +n = len(arr) +print("Given array is") +for i in range(n): + print("%d" % arr[i]), + +mergeSort(arr, 0, n-1) +print("\n\nSorted array is") +for i in range(n): + print("%d" % arr[i]), + +