From 7c89881274b3986fcaac73273f1974516f4c4a67 Mon Sep 17 00:00:00 2001 From: Harjot Kaur Date: Thu, 5 Oct 2023 18:31:52 +0530 Subject: [PATCH] commit --- mergesort.py | 39 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 39 insertions(+) create mode 100644 mergesort.py diff --git a/mergesort.py b/mergesort.py new file mode 100644 index 0000000..f8f7e09 --- /dev/null +++ b/mergesort.py @@ -0,0 +1,39 @@ +def merge_sort(arr): + if len(arr) > 1: + mid = len(arr) // 2 + left_half = arr[:mid] + right_half = arr[mid:] + + merge_sort(left_half) + merge_sort(right_half) + + # Merge the sorted halves + i = j = k = 0 + while i < len(left_half) and j < len(right_half): + if left_half[i] < right_half[j]: + arr[k] = left_half[i] + i += 1 + else: + arr[k] = right_half[j] + j += 1 + k += 1 + + # Check if any elements were left + while i < len(left_half): + arr[k] = left_half[i] + i += 1 + k += 1 + + while j < len(right_half): + arr[k] = right_half[j] + j += 1 + k += 1 + +# Example usage: +if __name__ == "__main__": + my_list = [12, 11, 13, 5, 6, 7] + print("Original list:", my_list) + + merge_sort(my_list) + + print("Sorted list:", my_list)