diff --git a/sorts/shell_sort.py b/sorts/shell_sort.py index 80d95870f..bf3c2c7f9 100644 --- a/sorts/shell_sort.py +++ b/sorts/shell_sort.py @@ -30,16 +30,11 @@ def shell_sort(collection): gaps = [701, 301, 132, 57, 23, 10, 4, 1] for gap in gaps: - i = gap - while i < len(collection): - temp = collection[i] + for i in range(gap, len(collection)): j = i - while j >= gap and collection[j - gap] > temp: - collection[j] = collection[j - gap] + while j >= gap and collection[j] < collection[j - gap]: + collection[j], collection[j - gap] = collection[j - gap], collection[j] j -= gap - collection[j] = temp - i += 1 - return collection