一种多组有序序列的并行排序方法
【技术领域】
[0001] 本发明属于数据处理技术,具体涉及数据的排序方法。
【背景技术】
[0002] 排序是数据处理技术中一个重要操作,随着数据处理技术的发展,数据量的增大, 快速高效的排序方法起着非常重要的作用。
[0003] 排序一般是针对一群凌乱的数据,通过某种方法使得这组数据有从小到大或者从 大到小的顺序性。在数据处理中有很强的整理数据的作用,可以使得数据的特点和特征更 加明显。在需要排名和画出图表等数据处理中发挥着重要的作用;在CFAR检测中有序统计 和排序方差等均有重大用途。
[0004] 现阶段针对两组有序数据进行融合排序时,将第一组数据中的一个数与第二组数 据中的所有数进行对比然后将该第一组中的该数插入第二组中,形成新的第二组数据;然 后将第一组数据中的第二个数与新的第二组数据所有数进行比较,再插入其中;采用该方 法完成第一数据的其他数据的插入。这样比较插入方法,数据之间的比较次数较多,极大的 浪费计算资源,且计算时间长,效率低。
【发明内容】
[0005] 本发明所需要解决的技术问题是,提出一种排序时间短,效率高的多组有序序列 的并行排序方法。
[0006] 本发明为解决上述技术问题所采用的技术方案是,一种多组有序序列的并行排序 方法,该方法包括:
[0007] 步骤1 :将第一组数据的第一个数据与第二组数据的各数据进行比较,判断大小 关系,若相等则判断其为大于或小于;
[0008] 步骤2 :采用与步骤1相同的方法比较第一组的其它数据与第二组中各数据的大 小;
[0009] 步骤3:要进行融合排序时,首先判断第一组中各数据需要插入第二组数据中的 位置;
[0010] 步骤4 :根据步骤3的判断结果,若第二组中插入数据的相同位置只有一个数据, 则将该数据直接插入,若相同位置有多个数据,则将这多个数据按照其在第一组中的顺序 整体插入该位置;
[0011] 步骤5 :将第一组中所有的数据插入第二组数据中完成排序。
[0012] 进一步的,所述步骤3、4、5的具体方法为:
[0013] Sl :针对第一组的第一个数据,统计第二组中大于该数据的个数,将该数据在第一 组中的排序序号加上统计的个数作为该数据在第一、二组数据融合排序后的新序号;
[0014] S2 :采用步骤S2的方法获得第一组数据在融合排序后的新序号;
[0015] S3:针对第二组的第一个数据,统计第一组中小于该数据的个数,将该数据在第二 组的在排序序号机上统计的个数作为该数据在融合排序后的新序号;
[0016] S4 :采用步骤S3的方法获得第二组数据在融合排序后的新序号;
[0017] S5 :按照新序号依次排列第一组和第二组的数据,即将第一组和第二组数据融合 排列完成。
[0018] 本发明的有益效果是:
[0019] 排序的准确性好,数据比较次数少,通过对比的思想,数据之间的大小关系非常的 明显,序号计算很方便。
[0020] 可移植性很强。当数据量过大是,可以通过将大数据分成若干个小的数据,对小数 据进行排序,再使用此方法进行有序序列的两两合并排序,串行处理直接排序需要很多次 的对比,其他几种方法都会随着数据长度η的增加成比例的增长,并行排序法在时间上没 有变化,只是在空间上有会有所增大。
[0021] 基于并行排列法时,在数据量小、空间足够大,需要非常快的速度取实现排序时, 此方法非常适用。
【具体实施方式】
[0022] 表1为各种排序方法的为稳定性和复杂度对比,对比之下本发明方法稳定性及复 杂度最优。表2为本发明的【具体实施方式】,包括a组数据"1、4、5、7、9",13组数据"2、3、8、 10、13",将对这两组数据进行融合排序。首先相互比较两组数据中个数据两两之间的大小, a组数据数据大于b组数据用" 1"表示,否则用"0"表示。表3为获取a组数据的新标号 获得方法,针对a组数据统计" 1"的个数,在a组各数据现有序号的基础上,加上该数据对 应的"1"的个数,为融合后排序的新序号。表4为b组数据的新序号获得方法,针对b组数 据,统计"〇"的个数,在b组数据现有序号的基础上,加上该数据对应的"0"的个数,为融合 后排序的新序号。表5为,获取两组数据新序号后进行的重新输出排序。
[0023] 表1各排序方法性能对比
[0024]
【主权项】
1. 一种多组有序序列的并行排序方法,该方法包括: 步骤1:将第一组数据的第一个数据与第二组数据的各数据进行比较,判断大小关系, 若相等则判断其为大于或小于; 步骤2 :采用与步骤1相同的方法比较第一组的其它数据与第二组中各数据的大小; 步骤3 :要进行融合排序时,首先判断第一组中各数据需要插入第二组数据中的位置; 步骤4 :根据步骤3的判断结果,若第二组中插入数据的相同位置只有一个数据,则将 该数据直接插入,若相同位置有多个数据,则将这多个数据按照其在第一组中的顺序整体 插入该位置; 步骤5 :将第一组中所有的数据插入第二组数据中完成排序。2. 如权利要求1所述的所述一种多组有序序列的并行排序方法,其特征在于步骤3、 4、5的具体方法为: 51 :针对第一组的第一个数据,统计第二组中大于该数据的个数,将该数据在第一组中 的排序序号加上统计的个数作为该数据在第一、二组数据融合排序后的新序号; 52 :采用步骤S2的方法获得第一组数据在融合排序后的新序号; 53 :针对第二组的第一个数据,统计第一组中小于该数据的个数,将该数据在第二组的 在排序序号机上统计的个数作为该数据在融合排序后的新序号; 54 :采用步骤S3的方法获得第二组数据在融合排序后的新序号; 55 :按照新序号依次排列第一组和第二组的数据,即将第一组和第二组数据融合排列 完成。
【专利摘要】该发明公开了一种多组有序序列的并行排序方法,属于数据处理技术,具体涉及数据的排序方法。该方法包括:将第一组数据的第一个数据与第二组数据的各数据进行比较,判断大小关系,若相等则判断其为大于或小于;采用与步骤1相同的方法比较第一组的其它数据与第二组中各数据的大小;要进行融合排序时,首先判断第一组中各数据需要插入第二组数据中的位置;根据步骤3的判断结果,若第二组中插入数据的相同位置只有一个数据,则将该数据直接插入,若相同位置有多个数据,则将这多个数据按照其在第一组中的顺序整体插入该位置;将第一组中所有的数据插入第二组数据中完成排序。从而具有排序时间短,效率高的优点。
【IPC分类】G06F9/44
【公开号】CN105045600
【申请号】CN201510494685
【发明人】于雪莲, 舒占军, 李海翔, 兰杰, 周云
【申请人】电子科技大学
【公开日】2015年11月11日
【申请日】2015年8月13日