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
}
网友评论