zoukankan      html  css  js  c++  java
  • Go 并发排序

    单机版外部排序

    一、基础补充

    2-1 Hello world网络版

    (访问:localhost:8888)

    2-2 Helloworld并发版

    第一种

    第二种

    第三种

    第四种

    2-3 内部排序示例

     

    3-1 归并排序算法

    主要结构:

    3-2 基础节点

    3-3 归并节点

     

    3-4 文件读写

     

    生成随机数

    ArraySource

    支持分块

    创建一个用于排序的源头,通过可变参数...传入设置的值,返回的时候注意要close(out)

    InMemSort

    创建一个内部排序函数,从内存中获取并利用sort.Ints(a)来排序。

    使用:

    Merge

    针对多个源进行排序,与上面区别是输入源多了一个,需要判断

    使用

    ReaderSource

    读取数据源,chunkSize是确认读取数据大小,如果读完就不读了。注意这里语句make([ ]byte,8)

    WriteSink

    写入数据

    RandomSource

    利用随机数生成数据

    MergeN

    搭建归并节点组

    归并排序

     使用

    外部排序整合小文件

    使用:

    具体实现:

    运行结果(查看大小)

    外部排序整合大文件

    在pipeline0807里增加

    (因为大文件一会读不玩,我们利用时间看下到底是怎么的)

    在InMemSort中增加输出,并将out创建时候,改成1024

    在Merge里增加输出

     在外部排序里面增加

    在createPipeline调用init函数

    修改主函数:计算机是4核的,因此参数为4比较划算,文件大小改为800000000比较慢,这里我采用较小的

    输出大致为:

  • 相关阅读:
    WINNER队成立(第二天)
    新学期组队合作
    构建之法第8、9、10章
    第一阶段冲刺(第一天)
    作业六:小学生四则运算之NABCD模型与产品Backlog。
    构建之法第六章、第七章观后感
    四则运算,测试与封装。
    使用Webpack4 搭建React项目
    算法一小时--希尔排序
    算法一小时-插入排序
  • 原文地址:https://www.cnblogs.com/ycx95/p/9435901.html
Copyright © 2011-2022 走看看