From 7ac2601ce658d3beb51f5b44d81b04fce07b73d4 Mon Sep 17 00:00:00 2001 From: imxyb Date: Thu, 9 Jan 2020 23:05:24 +0800 Subject: [PATCH] add uint32 slice sort Signed-off-by: imxyb --- sort/sort.go | 18 ++++++++++++++++++ sort/sort_test.go | 12 ++++++++++++ 2 files changed, 30 insertions(+) diff --git a/sort/sort.go b/sort/sort.go index dca4901..2586242 100644 --- a/sort/sort.go +++ b/sort/sort.go @@ -29,6 +29,10 @@ func Int32(slice []int32) { sort.Sort(Int32Slice(slice)) } +func Uint32(slice []uint32) { + sort.Sort(Uint32Slice(slice)) +} + type Int64Slice []int64 func (p Int64Slice) Len() int { @@ -56,3 +60,17 @@ func (p Int32Slice) Less(i, j int) bool { func (p Int32Slice) Swap(i, j int) { p[i], p[j] = p[j], p[i] } + +type Uint32Slice []uint32 + +func (p Uint32Slice) Len() int { + return len(p) +} + +func (p Uint32Slice) Less(i, j int) bool { + return p[i] < p[j] +} + +func (p Uint32Slice) Swap(i, j int) { + p[i], p[j] = p[j], p[i] +} diff --git a/sort/sort_test.go b/sort/sort_test.go index de92afb..a6613ea 100644 --- a/sort/sort_test.go +++ b/sort/sort_test.go @@ -48,3 +48,15 @@ func TestSortInt64(t *testing.T) { assert.Equal(t, int64(5), data[5]) assert.Equal(t, int64(9), data[6]) } + +func TestSortUint32(t *testing.T) { + data := []uint32{3, 5, 1, 9, 0, 2, 2} + Uint32(data) + assert.Equal(t, uint32(0), data[0]) + assert.Equal(t, uint32(1), data[1]) + assert.Equal(t, uint32(2), data[2]) + assert.Equal(t, uint32(2), data[3]) + assert.Equal(t, uint32(3), data[4]) + assert.Equal(t, uint32(5), data[5]) + assert.Equal(t, uint32(9), data[6]) +}