@@ -6,6 +6,8 @@ def adaptive_merge_sort(sequence: list) -> list:
6
6
Initial sequence: [4, 3, 1, 2]
7
7
Sorting: array[0:2] and array[2:4]
8
8
Sorting: array[0:1] and array[1:2]
9
+ Merging: array[0:1] and array[1:2]
10
+ After merge: [3, 4]
9
11
Sorting: array[2:3] and array[3:4]
10
12
Skipping merge as array[0] <= array[1]
11
13
Skipping merge as array[2] <= array[3]
@@ -22,16 +24,16 @@ def adaptive_merge_sort(sequence: list) -> list:
22
24
print (f"Sorted sequence: { sequence } " )
23
25
return sequence
24
26
25
-
26
27
def adaptive_merge_sort_helper (array : list , aux : list , low : int , high : int ) -> None :
27
28
"""
28
29
Helper function for Adaptive Merge Sort algorithm.
29
30
30
31
>>> adaptive_merge_sort_helper([4, 3, 1, 2], [4, 3, 1, 2], 0, 3)
31
32
Sorting: array[0:2] and array[2:4]
32
33
Sorting: array[0:1] and array[1:2]
34
+ Merging: array[0:1] and array[1:2]
35
+ After merge: [3, 4]
33
36
Sorting: array[2:3] and array[3:4]
34
- Skipping merge as array[0] <= array[1]
35
37
Skipping merge as array[2] <= array[3]
36
38
Merging: array[0:2] and array[2:4]
37
39
After merge: [1, 2, 3, 4]
@@ -48,7 +50,6 @@ def adaptive_merge_sort_helper(array: list, aux: list, low: int, high: int) -> N
48
50
return
49
51
merge (array , aux , low , mid , high )
50
52
51
-
52
53
def merge (array : list , aux : list , low : int , mid : int , high : int ) -> None :
53
54
"""
54
55
Merges two sorted subarrays of the main array.
@@ -72,4 +73,5 @@ def merge(array: list, aux: list, low: int, mid: int, high: int) -> None:
72
73
else :
73
74
aux [k ] = array [i ]
74
75
i += 1
76
+ array [low :high + 1 ] = aux [low :high + 1 ] # Update the main array with merged values
75
77
print (f"After merge: { aux [low :high + 1 ]} " )
0 commit comments