diff options
Diffstat (limited to 'sort/shell.go')
| -rw-r--r-- | sort/shell.go | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/sort/shell.go b/sort/shell.go index 99aaf3d..39414f5 100644 --- a/sort/shell.go +++ b/sort/shell.go @@ -17,11 +17,12 @@ func Shell(a []ds.Comparer) []ds.Comparer { for h >= 1 { for i := h; i < length; i++ { for j := i; j >= h; j -= h { - if a[j].LowerThan(a[j-h]) { - tmp := a[j] - a[j] = a[j-h] - a[j-h] = tmp + if a[j-h].Lower(a[j]) { + break } + tmp := a[j] + a[j] = a[j-h] + a[j-h] = tmp } } |
