func sleepsort(in []int) (out []int) { ok := make(chan bool) for _, v := range in { go func(v int) { time.Sleep(time.Duration(v) * time.Second) out = append(out, v) ok <- true }(v) } for range in { <-ok; } return }
func sleepsort(in []int) (out []int) { ok := make(chan bool) for _, v := range in { go func(v int) { time.Sleep(time.Duration(v) * time.Second) out = append(out, v) ok <- true }(v) } for range in { <-ok } return }