└── Merge sort /Merge sort: -------------------------------------------------------------------------------- 1 | def merge_sort(arr): 2 | if len(arr) > 1: 3 | mid = len(arr) // 2 4 | left_half = arr[:mid] 5 | right_half = arr[mid:] 6 | 7 | merge_sort(left_half) 8 | merge_sort(right_half) 9 | 10 | i = j = k = 0 11 | 12 | # Merge the two sorted halves 13 | while i < len(left_half) and j < len(right_half): 14 | if left_half[i] < right_half[j]: 15 | arr[k] = left_half[i] 16 | i += 1 17 | else: 18 | arr[k] = right_half[j] 19 | j += 1 20 | k += 1 21 | 22 | # Check if any elements are remaining in left_half 23 | while i < len(left_half): 24 | arr[k] = left_half[i] 25 | i += 1 26 | k += 1 27 | 28 | # Check if any elements are remaining in right_half 29 | while j < len(right_half): 30 | arr[k] = right_half[j] 31 | j += 1 32 | k += 1 33 | 34 | def print_list(arr): 35 | for num in arr: 36 | print(num, end=" ") 37 | print() 38 | 39 | # Example usage: 40 | arr = [12, 11, 13, 5, 6, 7] 41 | print("Original array:", arr) 42 | merge_sort(arr) 43 | print("Sorted array:", arr) 44 | --------------------------------------------------------------------------------