diff options
| author | Paul Buetow <paul@buetow.org> | 2020-07-15 08:28:21 +0100 |
|---|---|---|
| committer | Paul Buetow <paul@buetow.org> | 2020-07-15 08:28:21 +0100 |
| commit | e6e3b27756974ad7255345c98260918a96f3a476 (patch) | |
| tree | d56e404ca6724a64116aa10cb147161f8e7fcff2 /sort | |
| parent | 73ca4d0b86036a41b452212702e6aa669888d740 (diff) | |
fix shell sort
Diffstat (limited to 'sort')
| -rw-r--r-- | sort/insertion.go | 2 | ||||
| -rw-r--r-- | sort/selection.go | 2 | ||||
| -rw-r--r-- | sort/shell.go | 9 | ||||
| -rw-r--r-- | sort/sorted.go | 2 |
4 files changed, 8 insertions, 7 deletions
diff --git a/sort/insertion.go b/sort/insertion.go index d14c275..8e4af30 100644 --- a/sort/insertion.go +++ b/sort/insertion.go @@ -9,7 +9,7 @@ func Insertion(a []ds.Comparer) []ds.Comparer { for i := 0; i < length; i++ { for j := i; j > 0; j-- { - if a[j].HigherThan(a[j-1]) { + if a[j].Higher(a[j-1]) { break } tmp := a[j] diff --git a/sort/selection.go b/sort/selection.go index 2782460..d084fc0 100644 --- a/sort/selection.go +++ b/sort/selection.go @@ -9,7 +9,7 @@ func Selection(a []ds.Comparer) []ds.Comparer { for i := 0; i < length; i++ { min := i for j := i + 1; j < length; j++ { - if a[min].HigherThan(a[j]) { + if a[min].Higher(a[j]) { min = j } } 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 } } diff --git a/sort/sorted.go b/sort/sorted.go index a24de19..b29e3c6 100644 --- a/sort/sorted.go +++ b/sort/sorted.go @@ -4,7 +4,7 @@ import "algorithms/ds" func Sorted(a []ds.Comparer) bool { for i := len(a) - 1; i > 0; i-- { - if a[i].LowerThan(a[i-1]) { + if a[i].Lower(a[i-1]) { return false } } |
