@@ -9,7 +9,6 @@ def adaptive_merge_sort(sequence: list) -> list:
9
9
Merging: array[0:1] and array[1:2]
10
10
After merge: [3, 4]
11
11
Sorting: array[2:3] and array[3:4]
12
- Skipping merge as array[0] <= array[1]
13
12
Skipping merge as array[2] <= array[3]
14
13
Merging: array[0:2] and array[2:4]
15
14
After merge: [1, 2, 3, 4]
@@ -24,7 +23,6 @@ def adaptive_merge_sort(sequence: list) -> list:
24
23
print (f"Sorted sequence: { sequence } " )
25
24
return sequence
26
25
27
-
28
26
def adaptive_merge_sort_helper (array : list , aux : list , low : int , high : int ) -> None :
29
27
"""
30
28
Helper function for Adaptive Merge Sort algorithm.
@@ -51,7 +49,6 @@ def adaptive_merge_sort_helper(array: list, aux: list, low: int, high: int) -> N
51
49
return
52
50
merge (array , aux , low , mid , high )
53
51
54
-
55
52
def merge (array : list , aux : list , low : int , mid : int , high : int ) -> None :
56
53
"""
57
54
Merges two sorted subarrays of the main array.
@@ -75,7 +72,7 @@ def merge(array: list, aux: list, low: int, mid: int, high: int) -> None:
75
72
else :
76
73
aux [k ] = array [i ]
77
74
i += 1
78
- array [ low : high + 1 ] = aux [
79
- low : high + 1
80
- ] # Update the main array with merged values
75
+ # Ensure we correctly copy back to the main array
76
+ for k in range ( low , high + 1 ):
77
+ array [ k ] = aux [ k ]
81
78
print (f"After merge: { aux [low :high + 1 ]} " )
0 commit comments