[发明专利]一种金字塔排序算法在审

专利信息
申请号: 201510975288.9 申请日: 2015-12-22
公开(公告)号: CN105574344A 公开(公告)日: 2016-05-11
发明(设计)人: 吕勇;刘斌 申请(专利权)人: 常州信息职业技术学院
主分类号: G06F19/00 分类号: G06F19/00
代理公司: 北京中济纬天专利代理有限公司 11429 代理人: 徐琳淞
地址: 213164 江*** 国省代码: 江苏;32
权利要求书: 查看更多 说明书: 查看更多
摘要:
搜索关键词: 一种 金字塔 排序 算法
【说明书】:

技术领域

发明涉及一种金字塔排序算法。

背景技术

当前,对大量数据进行排序时,通常选择的是快速排序算法。快速排序是性能优异的排序算法,但是若快速排序基准值选择不当或待排序序列基本有序时,快速排序的性能会大幅度降低。而堆排序在待排序序列基本有序的情况下比快速排序快,但是堆排序也有缺点:当待排序元素为复杂的数据结构时,由于堆排序中无效移动次数比较多,对堆排序性能也有较大影响。

发明内容

本发明的目的是提供一种金字塔排序算法,在待排序序列基本有序情况下以及待排序元素具有复杂的数据结构的情况下,提升排序速度。

实现本发明目的的技术方案是:一种金字塔排序算法,包括以下步骤:

①、对n个数据进行排序时,先定义一个具有n个单元的a数组,然后找到一个整数m,m为2的整数次幂,并且m/2<n≤m;

②、定义一个具有m个单元的b数组,b数组构成金字塔的塔基;再定义一个具有m个单元的c数组,c数组构成金字塔的塔身;

③、对c数组进行初始化,将需要排序的n个数据放入b数组中,并在b数组中放入m-n个最小值数据,该最小值数据为n个数据中的最小值数据,形成m/2对相邻数据;然后将其逐一比较,将相对大数的下标放入c数组的m/2~m-1单元中,此过程形成金字塔第1层塔身;

④、从m-1开始,逐个比较b[c[m-1]]和b[c[m-2]]、b[c[m-3]]和b[c[m-4]]、……、b[c[m/2+1]]和b[c[m/2]],并将相对大数的下标放入c[m/2-1]、c[m/2-2]、……、c[m/4]中,依此类推形成金字塔第2、第3……乃至最高一层塔身,由此构建整个塔身,最后整个b数组最大值数据的下标会被放入c[1]中;

⑤、为步骤④得到的b数组中的最大值数据赋以最小值;

⑥、重复步骤④和步骤⑤,从而不断找出b数组中的最大值,并将其逐个放入a[0]、a[1]、a[2]……,完成排序。

所述步骤①中整数m的找寻方法为:给一个变量赋值为1,然后比较该变量和n的值,若它小于n,则将其乘以2,再次进行比较它和n的值,……,直到该数据大于等于n为止,此时该变量的值即为m。

所述步骤③中的相邻数据是指下标为奇数的数据与其前面的数据为相邻数据,与其后面的数据不是相邻数据。

采用了上述技术方案,本发明具有以下的有益效果:本发明在通常情况下的排序速度略低于快速排序,但是在待排序序列基本有序情况下,本发明的排序速度明显优于快速排序,并且在对待排序元素为较复杂的数据结构进行排序的情况下,本发明的排序速度明显优于堆排序。

具体实施方式

(实施例1)

本实施例的金字塔排序算法,包括以下步骤:

①、对n个数据进行排序时,先定义一个具有n个单元的a数组,然后找到一个整数m,m为2的整数次幂,并且m/2<n≤m。

整数m的找寻方法为:给一个变量赋值为1,然后比较该变量和n的值,若它小于n,则将其乘以2,再次进行比较它和n的值,……,直到该数据大于等于n为止,此时该变量的值即为m。

②、定义一个具有m个单元的b数组,b数组构成金字塔的塔基;再定义一个具有m个单元的c数组,c数组构成金字塔的塔身。

③、对c数组进行初始化,将需要排序的n个数据放入b数组中,并在b数组中放入m-n个最小值数据,该最小值数据为n个数据中的最小值数据,形成m/2对相邻数据;然后将其逐一比较,将相对大数的下标放入c数组的m/2~m-1单元中,此过程形成金字塔第1层塔身。

相邻数据是指下标为奇数的数据与其前面的数据为相邻数据,与其后面的数据不是相邻数据,即b[2i]和b[2i+1]为相邻数据(其中i为整数),而b[2*i]和b[2*i-1]不是相邻数据。比如b[0]和b[1]是相邻数据,而b[1]和b[2]不是相邻数据。

④、从m-1开始,逐个比较b[c[m-1]]和b[c[m-2]]、b[c[m-3]]和b[c[m-4]]、……、b[c[m/2+1]]和b[c[m/2]],并将相对大数的下标放入c[m/2-1]、c[m/2-2]、……、c[m/4]中,依此类推形成金字塔第2、第3……乃至最高一层塔身,由此构建整个塔身,最后整个b数组最大值数据的下标会被放入c[1]中。

⑤、为步骤④得到的b数组中的最大值数据赋以最小值。

下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。

该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于常州信息职业技术学院,未经常州信息职业技术学院许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服

本文链接:http://www.vipzhuanli.com/pat/books/201510975288.9/2.html,转载请声明来源钻瓜专利网。

×

专利文献下载

说明:

1、专利原文基于中国国家知识产权局专利说明书;

2、支持发明专利 、实用新型专利、外观设计专利(升级中);

3、专利数据每周两次同步更新,支持Adobe PDF格式;

4、内容包括专利技术的结构示意图流程工艺图技术构造图

5、已全新升级为极速版,下载速度显著提升!欢迎使用!

请您登陆后,进行下载,点击【登陆】 【注册】

关于我们 寻求报道 投稿须知 广告合作 版权声明 网站地图 友情链接 企业标识 联系我们

钻瓜专利网在线咨询

周一至周五 9:00-18:00

咨询在线客服咨询在线客服
tel code back_top