[发明专利]基于FPGA的数组排序方法、系统及数据压缩方法在审
申请号: | 202110668770.3 | 申请日: | 2021-06-16 |
公开(公告)号: | CN113407484A | 公开(公告)日: | 2021-09-17 |
发明(设计)人: | 凌云;莫保健 | 申请(专利权)人: | 杭州加速科技有限公司 |
主分类号: | G06F15/82 | 分类号: | G06F15/82;G06F15/78 |
代理公司: | 深圳智趣知识产权代理事务所(普通合伙) 44486 | 代理人: | 李兴生 |
地址: | 311121 浙江省杭州市余杭区*** | 国省代码: | 浙江;33 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 基于 fpga 数组 排序 方法 系统 数据压缩 | ||
本发明提出了一种基于FPGA的数组排序方法、系统及数据压缩方法。方法应用于FPGA数据压缩中,包括:获取待排序数组,待排序数组中的数据按照初始顺序排列,按照初始顺序对数据进行编号,获取初始序号;按照初始顺序从待排序数组中依次选取数据作为第一数据,比较第一数据与待排序数组中的数据的大小,通过标志位记录比较结果,将第一数据的标志位数值相加得到最终序号,最终序号即为第一数据在待排序数组中按升序排序的位置序号。本发明提供的基于FPGA的数组排序方法,只需将数组遍历一次即可完成数组的排序,且时间复杂度不受数据集影响,每一次排序的时间复杂度固定为O=n,解决了现有排序算法排序时间长、排序耗时不固定的问题。
技术领域
本发明涉及数据处理领域,特别涉及一种基于FPGA的数组排序方法、系统及数据压缩方法。
背景技术
数据排序是按一定顺序将数据进行排列,以便研究者通过浏览数据发现一些明显的特征或趋势,找到解决问题的线索。除此之外,排序还有助于对数据检查纠错,以及为重新归类或分组等提供方便。好的排序方法可以有效提高排序速度,提高排序效果。常用的排序方法包括冒泡排序法、快速排序法、插入排序法、希尔排序法、归并排序法等。
冒泡排序法:将数组中的相邻两个数据进行比较,将比较大(较小)的数通过两两比较移动到数组末尾(开始),执行一遍内层循环,确定一个最大(最小)的数,外层循环从数组末尾(开始)遍历到开始(末尾)。
插入排序法:将要排序的数组分成两部分,每次从后面的部分取出索引最小的数据插入到前一部分的适当位置。
快速排序法:快速排序法号称是目前最优秀的算法之一,实现思路是,将一个数组的排序问题看成是两个小数组的排序问题,而每个小的数组又可以继续看成更小的两个数组,一直递归下去,直到数组长度大小最大为2。
但上述常见的排序方法都无法经过一次遍历就完成数组排序,无法做到时间复杂度O=n;且大多情况下受数据集本身影响,排序空间复杂度与时间复杂度不稳定。
因此,现有技术的排序方法普遍存在复杂度高、比较次数多(空间复杂度高)、排序时间长(时间复杂度高),且在实现排序时间受数据本身影响等缺点。由此,急需一种数组排序方案能够解决上述问题。
发明内容
有鉴于此,本发明提出了一种基于FPGA的数组排序方法、系统及数据压缩方法,具体方案如下:
一种基于FPGA的数组排序方法,应用于FPGA数据压缩中,包括如下:
获取待排序数组,所述待排序数组中的数据按照初始顺序排列,按照所述初始顺序对所述数据进行编号,获取初始序号;
按照所述初始顺序从所述待排序数组中依次选取数据作为第一数据,比较所述第一数据与所述待排序数组中的数据的大小,通过标志位记录比较结果,所述标志位包括标志位数值和和标志位序号,所述标志位序号与所述初始序号对应,每个所述第一数据的标志位数量与所述待排序数组中的数据数量相同;
将所述第一数据的所述标志位数值相加得到最终序号,所述最终序号即为所述第一数据在所述待排序数组中按升序排序的位置序号。
在一个具体实施例中,“比较所述第一数据与所述待排序数组中的数据的大小,通过标志位记录比较结果”具体包括:
将所述第一数据与所述待排序数组中的每一个数据进行比较,并通过标志位记录比较结果,
当所述第一数据大于所述待排序数组中的某一数据时,所述标志位数值记为1;
当所述第一数据小于所述待排序数组中的某一数据时,所述标志位数值记为0;
当所述第一数据等于所述待排序数组中的某一数据时,判断所述第一数据的初始序号是否大于所述数据的初始序号:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于杭州加速科技有限公司,未经杭州加速科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202110668770.3/2.html,转载请声明来源钻瓜专利网。