本发明涉及计算机应用,具体而言,涉及一种基于位运算的排序方法、装置、计算机设备及存储介质。
背景技术:
1、排序在很多应用场景中发挥关键性作用,如数据挖掘、模式识别等。随着数据量的爆炸式增长,在大规模数据的排序过程中,提高数据处理效率显得越来越重要。现有的并行排序算法将待排序的数组分成多个子数组,每个子数组分别进行排序,最终将各个子数组的排序结果合并起来,从而得到最终排序结果。对于排序的方法需要将待比较数据进行分组排序和比较,再将最终结果进行组合,实现复杂的同时还会影响效率。
技术实现思路
1、本发明旨在解决上述至少一个问题。
2、为解决上述问题,本发明提供一种基于位运算的排序方法,包括:
3、获取原始数据集,其中,所述原始数据集包括多个子数据;
4、根据预设终点与所有所述子数据得到多个运算结果;
5、当所述运算结果不为零时,将所述子数据依次放入目标排序处理数据集;
6、当所述运算结果为零时,将所述子数据左移一位得到处理子数据;
7、将所述处理子数据与所述预设终点进行位与运算得到处理运算结果;
8、当所述处理运算结果为零时,将所述处理子数据左移一位直到所述处理运算结果不为零,将所述处理子数据依次放入所述目标排序处理数据集;
9、根据所述目标排序处理数据集得到数据排序结果。
10、可选地,获取所有所述子数据和/或所述处理子数据进行位与运算的移动位数;
11、根据所述预设终点得到目标终点;
12、当所述移动位数相同时,将对应的所述子数据和/或所述处理子数据与所述目标终点进行位与运算,从而将所述子数据和/或所述处理子数据重新依次放入所述目标排序处理数据集直至所述移动位数不同。
13、可选地,所述根据所述预设终点得到目标终点,包括:
14、将所述预设终点右移一位得到所述目标终点。
15、可选地,在所述根据预设终点与所有所述子数据得到多个运算结果之前,还包括:
16、当所述子数据为零时,将所述子数据放入所述目标排序处理数据集的末尾。
17、可选地,所述根据预设终点与所有所述子数据得到多个运算结果,包括:
18、将所述预设终点与所有所述子数据同时进行位与运算分别得到对应的所述运算结果。
19、可选地,所述子数据为二进制码。
20、可选地,所述预设终点为0x10000000。
21、本发明所述的基于位运算的排序方法通过获取原始数据集,将所述子数据与预设终点进行位与运算,同时进行并行运算,提高数据处理速率。当所述运算结果不为零时,将所述子数据依次放入目标排序处理数据集,当所述运算结果为零时,将所述子数据左移一位得到处理子数据,对所述处理子数据重复上述操作直到所述处理运算结果不为零,不需要等全部数据处理结束就可以看到排名靠前的数据。根据所述目标排序处理数据集得到数据排序结果,不需要对数据进行分组处理就可以实现对原始数据集的数据排序,简化操作的同时提高了数据处理速率。
22、本发明还提供一种基于位运算的排序装置,包括:原始数据集获取单元,获取原始数据集,其中,所述原始数据集包括多个子数据;
23、运算结果获取单元,根据预设终点与所有所述子数据得到多个运算结果;
24、第一目标排序处理数据集获取单元,当所述运算结果不为零时,将所述子数据依次放入目标排序处理数据集;
25、处理子数据获取单元,当所述运算结果为零时,将所述子数据左移一位得到处理子数据;
26、第二目标排序处理数据集获取单元,将所述处理子数据与所述预设终点进行位与运算得到处理运算结果;当所述处理运算结果为零时,将所述处理子数据左移一位直到所述处理运算结果不为零,将所述处理子数据依次放入所述目标排序处理数据集;
27、数据排序结果获取单元,根据所述目标排序处理数据集得到数据排序结果。
28、本发明所述的基于位运算的排序装置与所述基于位运算的排序方法相对于现有技术的优势相同,在此不再赘述。
29、本发明还提供一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述任一项所述方法的步骤。
30、本发明所述的计算机设备与所述基于位运算的排序方法相对于现有技术的优势相同,在此不再赘述。
31、本发明还提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器读取并运行时,实现上述任一项所述方法的步骤。
32、本发明所述的计算机可读存储介质与所述基于位运算的排序方法相对于现有技术的优势相同,在此不再赘述。
1.一种基于位运算的排序方法,其特征在于,包括:
2.根据权利要求1所述的基于位运算的排序方法,其特征在于,还包括:
3.根据权利要求2所述的基于位运算的排序方法,其特征在于,所述根据所述预设终点得到目标终点,包括:
4.根据权利要求1所述的基于位运算的排序方法,其特征在于,在所述根据预设终点与所有所述子数据得到多个运算结果之前,还包括:
5.根据权利要求1所述的基于位运算的排序方法,其特征在于,所述根据预设终点与所有所述子数据得到多个运算结果,包括:
6.根据权利要求1所述的基于位运算的排序方法,其特征在于,所述子数据为二进制码。
7.根据权利要求1所述的基于位运算的排序方法,其特征在于,所述预设终点为0x10000000。
8.一种基于位运算的排序装置,其特征在于,包括:
9.一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时,实现如权利要求1至7中任一项所述的基于位运算的排序方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器读取并运行时,实现如权利要求1至7任一项所述的基于位运算的排序方法。