From 2fdccd98d65b03f6550d1824a7c5541cb1d175cf Mon Sep 17 00:00:00 2001 From: Thibaut Horel Date: Thu, 5 May 2016 23:24:44 -0400 Subject: Add Fisher-Yates schuffle --- utils.go | 13 +++++++++++++ 1 file changed, 13 insertions(+) (limited to 'utils.go') diff --git a/utils.go b/utils.go index 513786c..fe17650 100644 --- a/utils.go +++ b/utils.go @@ -1,5 +1,10 @@ package main +import ( + "math/rand" + "sort" +) + // floor of log(x) (i.e MSB for positive integers) func Log(x int64) int64 { var r int64 = 0 @@ -34,3 +39,11 @@ func Post(size int64, height int64, id int64) int64 { } return r } + +func Shuffle(data sort.Interface) { + var j int + for i := data.Len() - 1; i > 0; i-- { + j = rand.Intn(i + 1) + data.Swap(i, j) + } +} -- cgit v1.2.3-70-g09d2