From fa599a3caff9ee815e312c9cff0b51ba01601ccb Mon Sep 17 00:00:00 2001 From: yellowsto <79023119+yellowsto@users.noreply.github.com> Date: Wed, 17 Nov 2021 17:16:01 +0100 Subject: [PATCH 1/4] Update merge_insertion_sort.py Fixes #5774 merge_insertion_sort Co-Authored-By: AilisOsswald <44617437+AilisOsswald@users.noreply.github.com> --- sorts/merge_insertion_sort.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sorts/merge_insertion_sort.py b/sorts/merge_insertion_sort.py index fb71d84a3c14..d7d8bb64714d 100644 --- a/sorts/merge_insertion_sort.py +++ b/sorts/merge_insertion_sort.py @@ -160,7 +160,7 @@ def merge(left, right): """ is_last_odd_item_inserted_before_this_index = False for i in range(len(sorted_list_2d) - 1): - if result[i] == collection[-i]: + if result[i] == collection[-1]: is_last_odd_item_inserted_before_this_index = True pivot = sorted_list_2d[i][1] # If last_odd_item is inserted before the item's index, From ecabcbd3543dd39e380c5a700fc2cc3a4e8fce8d Mon Sep 17 00:00:00 2001 From: yellowsto <79023119+yellowsto@users.noreply.github.com> Date: Fri, 19 Nov 2021 16:38:59 +0100 Subject: [PATCH 2/4] Update merge_insertion_sort.py Fixes #5774 merge_insertion_sort Co-Authored-By: AilisOsswald <44617437+AilisOsswald@users.noreply.github.com> --- sorts/merge_insertion_sort.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sorts/merge_insertion_sort.py b/sorts/merge_insertion_sort.py index d7d8bb64714d..45d9ad1e1fdd 100644 --- a/sorts/merge_insertion_sort.py +++ b/sorts/merge_insertion_sort.py @@ -160,7 +160,7 @@ def merge(left, right): """ is_last_odd_item_inserted_before_this_index = False for i in range(len(sorted_list_2d) - 1): - if result[i] == collection[-1]: + if result[i] == collection[-1] and has_last_odd_item: is_last_odd_item_inserted_before_this_index = True pivot = sorted_list_2d[i][1] # If last_odd_item is inserted before the item's index, From 0e08304cbdb6f2d906b1b273fdae9d2b90337a63 Mon Sep 17 00:00:00 2001 From: yellowsto <79023119+yellowsto@users.noreply.github.com> Date: Wed, 24 Nov 2021 15:34:06 +0100 Subject: [PATCH 3/4] Update merge_insertion_sort.py Fixes #5774 added permutation range from 0 to 4 Co-Authored-By: AilisOsswald <44617437+AilisOsswald@users.noreply.github.com> --- sorts/merge_insertion_sort.py | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/sorts/merge_insertion_sort.py b/sorts/merge_insertion_sort.py index 45d9ad1e1fdd..3dcc6147c509 100644 --- a/sorts/merge_insertion_sort.py +++ b/sorts/merge_insertion_sort.py @@ -30,6 +30,12 @@ def merge_insertion_sort(collection: list[int]) -> list[int]: >>> merge_insertion_sort([-2, -5, -45]) [-45, -5, -2] + + Testing with all permutations on range(0,5): + >>> import itertools + >>> permutations = list(itertools.permutations([0, 1, 2, 3, 4])) + >>> [x for x in permutations if merge_insertion_sort(x) != [0, 1, 2, 3, 4]] + [] """ def binary_search_insertion(sorted_list, item): From b0906e6a91bafa732031b59cc8b8c797b7797b1c Mon Sep 17 00:00:00 2001 From: John Law Date: Thu, 16 Dec 2021 17:23:13 +0800 Subject: [PATCH 4/4] Use `all()` --- sorts/merge_insertion_sort.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/sorts/merge_insertion_sort.py b/sorts/merge_insertion_sort.py index 3dcc6147c509..ecaa535457f4 100644 --- a/sorts/merge_insertion_sort.py +++ b/sorts/merge_insertion_sort.py @@ -34,8 +34,8 @@ def merge_insertion_sort(collection: list[int]) -> list[int]: Testing with all permutations on range(0,5): >>> import itertools >>> permutations = list(itertools.permutations([0, 1, 2, 3, 4])) - >>> [x for x in permutations if merge_insertion_sort(x) != [0, 1, 2, 3, 4]] - [] + >>> all(merge_insertion_sort(p) == [0, 1, 2, 3, 4] for p in permutations) + True """ def binary_search_insertion(sorted_list, item):