美文网首页
go语言归并排序

go语言归并排序

作者: 天天天向上 | 来源:发表于2018-04-06 00:10 被阅读0次
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
}

相关文章

  • 1600万的整数排序pingcap-talent-plan(1)

    Merge Sort 问题描述 Go 语言实现一个16M的整数(int64)多路归并的数组排序 思路 将待排序数组...

  • go语言归并排序

  • 排序算法(插入排序、希尔排序、堆排序、归并排序)

    插入排序、希尔排序、堆排序、归并排序 --c语言实现 逐渐添加中....

  • 归并排序 Go 语言实现

    归并排序是建立在归并操作上的一种有效的排序算法,该算法是采用分治法(Divide and Conquer)的一个非...

  • go(归并排序)

  • 排序算法Java实现

    本文会通过Java语言实现:冒泡排序,插入排序,选择排序,归并排序,快速排序,桶排序,计数排序,基数排序,希尔排序...

  • 排序算法

    约定 选择排序 冒泡排序 插入排序 希尔排序 归并排序1. 归并方法2. 自顶向下归并排序3. 自底向上归并排序 ...

  • go之sort

    正如sort的含义,go的sort包提供排序的能力,其内部实现了堆排、快排、插入排序、希尔排序和归并排序,而且针对...

  • 排序二:归并、快排

    文章结构 归并排序 快速排序 源码 1. 归并排序 1.1 什么是归并排序 归并排序的思想是:将待排序的区间平分成...

  • GO语言实现 一 归并排序

    这次我们介绍一下归并排序 一.归并排序 归并排序很好的体现了分治法的应用,排序的大致思路如下: 将数组切片为相同长...

网友评论

      本文标题:go语言归并排序

      本文链接:https://www.haomeiwen.com/subject/zizdhftx.html