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语言归并排序
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
相关阅读更多精彩内容
- 最早拥有排序概念的机器出现在 1901 至 1904 年间由 Hollerith 发明出使用基数排序法的分类机,此...
- 选择排序 对于任何输入,时间为O(n*n); 冒泡排序 最优(对于升序的数组,因为加入了一个跳出判断):O(n),...