From 952dc0a4ed1c33d8bf7c0ba4c135901cb9a53362 Mon Sep 17 00:00:00 2001 From: ANANT JAIN <139585700+anant-jain01@users.noreply.github.com> Date: Thu, 17 Oct 2024 01:41:31 +0530 Subject: [PATCH] Update adaptive_merge_sort.py --- sorts/adaptive_merge_sort.py | 14 ++++---------- 1 file changed, 4 insertions(+), 10 deletions(-) diff --git a/sorts/adaptive_merge_sort.py b/sorts/adaptive_merge_sort.py index a34a11e37..caa76b746 100644 --- a/sorts/adaptive_merge_sort.py +++ b/sorts/adaptive_merge_sort.py @@ -50,7 +50,7 @@ def adaptive_merge_sort_helper(array: list, aux: list, low: int, high: int) -> N if array[mid] <= array[mid + 1]: print(f"Skipping merge as array[{mid}] <= array[{mid + 1}]") - array[low : high + 1] = aux[low : high + 1] + array[low:high + 1] = aux[low:high + 1] return merge(array, aux, low, mid, high) @@ -68,18 +68,12 @@ def merge(array: list, aux: list, low: int, mid: int, high: int) -> None: i, j = low, mid + 1 for k in range(low, high + 1): - if i > mid: + if i > mid or (j <= high and array[j] < array[i]): aux[k] = array[j] j += 1 - elif j > high: - aux[k] = array[i] - i += 1 - elif array[i] <= array[j]: # Keep stable by using <= - aux[k] = array[i] - i += 1 else: - aux[k] = array[j] - j += 1 + aux[k] = array[i] + i += 1 for k in range(low, high + 1): array[k] = aux[k]