package main
import (
"fmt"
"sort"
)
func main() {
p := InMemSort(arraySource(4,3,2,6,7,1,0,9))
for {
if num,ok := <- p;ok {
fmt.Println(num)
} else {
break
}
}
}
func InMemSort(in <-chan int) <-chan int {
out := make(chan int)
go func() {
a := []int{}
for v := range in {
a = append(a,v)
}
sort.Ints(a)
for _,v := range a {
out <- v
}
close(out)
}()
return out
}
func arraySource(a ...int) chan int {
out := make( chan int)
go func() {
for _,v := range a {
out <- v
}
close(out)
}()
return out
}
go语言归并排序
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
推荐阅读更多精彩内容
- 最早拥有排序概念的机器出现在 1901 至 1904 年间由 Hollerith 发明出使用基数排序法的分类机,此...
- 选择排序 对于任何输入,时间为O(n*n); 冒泡排序 最优(对于升序的数组,因为加入了一个跳出判断):O(n),...