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比较慢,这里我采用较小的

    输出大致为:

  • 相关阅读:
    [leetcode] LRU Cache @ Python
    [leetcode]Swap Nodes in Pairs @ Python
    [leetcode]Add Two Numbers @ Python
    [leetcode]Candy @ Python
    [leetcode]Gas Station @ Python
    [leetcode]Plus One @ Python
    接口测试-压力-Jmeter继续使用
    移动互联网应用测试,推荐两本书
    Android dumpsys 内存分析
    内存泄露分析之MAT工具简单使用
  • 原文地址:https://www.cnblogs.com/ycx95/p/9435901.html
Copyright © 2011-2022 走看看