From 2b8a758c2cd9e9c4f6b09faa888219cd322ceca5 Mon Sep 17 00:00:00 2001 From: jenyyy4 Date: Tue, 8 Oct 2024 10:22:25 +0530 Subject: [PATCH] added MergeSort.py --- Python/MergeSort.py | 54 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 54 insertions(+) create mode 100644 Python/MergeSort.py diff --git a/Python/MergeSort.py b/Python/MergeSort.py new file mode 100644 index 0000000..ae28949 --- /dev/null +++ b/Python/MergeSort.py @@ -0,0 +1,54 @@ +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 = 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],end=" ") + +mergeSort(arr, 0, n-1) +print("\n\nSorted array is") +for i in range(n): + print("%d" % arr[i],end=" ") \ No newline at end of file