假设数据长度为n 那么为每个待排序数创建一个线程,每个线程休眠 arr[ i ] ms 然后每个线程醒来后自己报数~~
看代码
func main() {
arr := []int{5, 6, 2, 4, 3, 7, 9, 1, 8}
for _, v := range arr {
go func(i int) {
time.Sleep(time.Millisecond * time.Duration(i))
fmt.Printf("%d ", i)
}(v)
}
time.Sleep(time.Second)
fmt.Println()
}
睡眠排序法
很强吧~~
go run t.go
1 2 3 4 5 6 7 8 9