diff options
| author | Paul Buetow <paul@buetow.org> | 2020-07-14 22:41:16 +0100 |
|---|---|---|
| committer | Paul Buetow <paul@buetow.org> | 2020-07-14 22:41:16 +0100 |
| commit | 7f87861624a1c5feb5523479db1c242a98f659b2 (patch) | |
| tree | ed71e8e045c21738b3305e4609d66c5a4a2d5032 /ds/integer.go | |
| parent | 1a175ce919dddb8d3a58533f3827a105483442c0 (diff) | |
add shellsort and refactor a bit
Diffstat (limited to 'ds/integer.go')
| -rw-r--r-- | ds/integer.go | 43 |
1 files changed, 37 insertions, 6 deletions
diff --git a/ds/integer.go b/ds/integer.go index 69ee0aa..b8026da 100644 --- a/ds/integer.go +++ b/ds/integer.go @@ -1,25 +1,56 @@ package ds -import "math/rand" +import ( + "fmt" + "math/rand" +) -type Integer int +type Integer struct { + val int +} func RandomIntegers(length, max int) []Comparer { a := make([]Comparer, length) for i := 0; i < length; i++ { - a[i] = Integer(rand.Intn(max)) + a[i] = Integer{rand.Intn(max)} } return a } +func SortedIntegers(length int) []Comparer { + a := make([]Comparer, length) + for i := 0; i < length; i++ { + a[i] = Integer{i} + } + return a +} + +func ReverseSortedIntegers(length int) []Comparer { + a := make([]Comparer, length) + j := length + for i := 0; i < length; i++ { + a[i] = Integer{j} + j-- + } + return a +} + +func (i Integer) String() string { + return fmt.Sprintf("%d", i.val) +} + +func (i Integer) IntVal() int { + return i.val +} + func (i Integer) LowerThan(j Comparer) bool { - return i < j.(Integer) + return i.val < j.IntVal() } func (i Integer) HigherThan(j Comparer) bool { - return i > j.(Integer) + return i.val > j.IntVal() } func (i Integer) Equals(j Comparer) bool { - return i == j.(Integer) + return i.val == j.IntVal() } |
