• 基于LLVM的海量数据排序算法研究。(二维表的排序算法)


    当待排序数据内容大于内存容量时,需将待排序内容分块,要进行排序的分块传入内存,未处于排序状态的存入外存,
    外存的读写时间是内存的百万倍,因此在内外存储器之间传输分块所消耗的 I/O 时间是大数据排序算法中影响性能
    的主要因素。
    本课题使用的排序算法,需要对待排数据进行多次遍历,一方面使内存使用率提高,
    但 I/O 操作数,即影响排序时间的主要因素大大减少,在数据量较大时,可明显
    达到减少总排序时间的目的。

    在以海量数据为主要研究对象的领域中,二维表排序操作更是海量数据处理
    技术的一个重要步骤。对于一个 m 条记录二维表,我们讨论 3 种排序算法。取其
    中的 n 个列作为排序关键字,按照排序的优先等级(k 1 ,k 2 ,...,k n )组成 m*n 的待
    排二维数组。
    顺序排序:
    类似一维数组的交换排序,将整行数据看作一个单位,每两条记录做一次对比,
    直到最后一条记录被放到正确的位置。两两对比时,先对比两条记录的关键字
    k 1 的值,如果不相同,则按规定顺序进行交换记录;如果值相同,再对比关键字
    k 2 ,k 3 ...,k n 以此类推。
    按列分组排序: :
    首先对关键字 k 1 进行排序,得到二维表在 k 1 上的排序结果。然后对 k 1 的每个值
    做一次分组,组内没有相同值时,则按规定顺序进行交换记录;有相同值时,每
    组再对 k 2 ,k 3 ,...,k n 的值进行分组,以此类推。

    优化参考方法:https://www.cnblogs.com/jueyoq/p/7900232.html

          https://www.cnblogs.com/ygh1229/articles/9806398.html

  • 相关阅读:
    IDEA中Maven依赖下载失败解决方案
    Java 泛型 泛型的约束与局限性
    年轻就该多尝试,教你20小时Get一项新技能
    Java入门
    2020全球C++及系统软件技术大会成功落下帷幕
    hashMap底层源码浅析
    hashMap底层源码浅析
    RabbitMQ (二) 简单队列
    RabbitMQ (一) 简介和基本概念
    Linux 关闭/开启密码登录(仅证书登录)
  • 原文地址:https://www.cnblogs.com/zyt-bg/p/12504356.html
Copyright © 2020-2023  润新知