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

    输出大致为:

  • 相关阅读:
    母函数详解
    java中为什么要实现序列化,什么时候实现序列化?
    cocos2dx&cocosbuilder折腾记
    Unity3D系列教程–使用免费工具在Unity3D中开发2D游戏 第二节(下)
    分頁查詢
    獲取CPU,硬盤序列號
    spcomm
    dbgrideh的導入和導出
    程序窗体及控件自适应分辨率
    組合的藝術
  • 原文地址:https://www.cnblogs.com/ycx95/p/9435901.html
Copyright © 2011-2022 走看看