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)