From 10bb86ecffef48fac00e599b3132cce34fbea771 Mon Sep 17 00:00:00 2001 From: Kunal Pal Date: Sun, 1 Oct 2023 23:50:08 +0530 Subject: [PATCH] implemented merge sort --- algorithms/python/merge_sort_new.py | 32 +++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) create mode 100644 algorithms/python/merge_sort_new.py diff --git a/algorithms/python/merge_sort_new.py b/algorithms/python/merge_sort_new.py new file mode 100644 index 0000000..b9c9a41 --- /dev/null +++ b/algorithms/python/merge_sort_new.py @@ -0,0 +1,32 @@ +def merge_sort(arr): + if len(arr) <= 1: + return arr + + mid = len(arr) // 2 + left_side = arr[:mid] + right_side = arr[mid:] + + left_side = merge_sort(left_side) + right_side = merge_sort(right_side) + + return merge(left_side, right_side) + +def merge(left, right): + result = [] + i = j = 0 + + while i < len(left) and j < len(right): + if left[i] < right[j]: + result.append(left[i]) + i += 1 + else: + result.append(right[j]) + j += 1 + + result.extend(left[i:]) + result.extend(right[j:]) + return result + +array = [12, 11, 13, 5, 6, 7] +sorted_array = merge_sort(array) +print("Sorted array:", sorted_array)