1. 程式人生 > >排序演算法:睡眠排序法

排序演算法:睡眠排序法

假設資料長度為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