[发明专利]一种语义驱动的中位数选择算法在审
申请号: | 201711329427.6 | 申请日: | 2017-12-13 |
公开(公告)号: | CN108009133A | 公开(公告)日: | 2018-05-08 |
发明(设计)人: | 段玉聪;邵礼旭;宋正阳 | 申请(专利权)人: | 海南大学 |
主分类号: | G06F17/18 | 分类号: | G06F17/18 |
代理公司: | 暂无信息 | 代理人: | 暂无信息 |
地址: | 570228 海*** | 国省代码: | 海南;46 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 语义 驱动 中位数 选择 算法 | ||
本发明是一种语义驱动的中位数选择算法,具体涉及一种寻找偶数个数值的中位数算法,属于数据结构与算法领域。本发明分析了两种迭代的模式分别是2*3模式(2个三元组)和2*6(2个六元组)模式,可以保证中位数候选数量的显着减少。基于对这2种模式的分析,本发明设计了一种算法来寻找偶数个数值的中位数。
技术领域
本发明提供一种语义驱动的中位数选择算法,具体涉及一种寻找偶数个数值的中位数算法,属于数据结构与算法领域。
背景技术
一个数据集合的中位数通常是很一个很有价值的统计指标,由于它对异常数据不敏感,所以一般会比平均值更能体现数据集合数据的“平均水平”。然而,对于无序数据序列求中位数在实现上却没有求平均值那样简单优美的O (N)复杂度的算法。最容易想到的做法是先对数据进行排序,然后取中点的值,然而这种做法的时间复杂度是O(NlogN)。
发明内容
本发明目的是提供一种语义驱动的中位数选择算法,来寻找偶数个数的中位数。中位数选择问题定义如下:给定一个有N个不同数字的数组ARR,找到一个中位数x或一对中位数(x,y)。因此,若N是奇数,则存在一个数arr
(a)排他性:当试图构造一个问题的算法时,只有基本的问题描述才能被理想地假设为完整的问题描述;
(b)完整性:在完成算法的设计时,从基本的问题描述中充分地探索必要的语义;
(c)兼容组合一致性:遵循上述排他性和完整性的规则,所得到的算法可以被视为对基本问题描述语义的形式化转换。作为一个整体,本发明提出对问题描述部分的组成语义进行操纵以符合整个问题描述的一般语义
本发明提出分析整个过程中的排除阶段,递归缩小搜索范围。设N>=6且N能被3整除,将N分成N/3个部分,每个部分里的三个数字按升序排列,表示为(sx,mx,lx),sx表示较小的数字,mx表示中位数,lx表示较大的数字,通过两种模式递归缩减搜索范围,本发明设NM表示在一个给定的数组中中位数可能存在的位置,PN表示对应位置上的数字在排序处理后可能对应的序号范围,ML表示左侧中位数,MR表示右侧中位数,把每个阶段累计排除的数字的影响当作关键的考虑因素,ex表示数字被排除,提出以下分析:
(1)2*3模式—两组三元组模式
设有两对三元组a和b,
三元组a:(sa,ma,la)->PN(1-4,2-5,3-6),
三元组b:(sb,mb,lb)->PN(1-4,2-5,3-6),
NM(6)={3,4}.
对于两个三元组,最多需要3次比较来得到三元组的中位数:
如果mb>ma,则(sa,ma,la-ex)->PN(1-4,3-5,5-6),(sb-ex,mb,lb)->PN(1-2,2-3,3-6);
如果sa<mb,则(sa-ex, ma, la-ex)->PN(1-2,4-5,5-6),(sb-ex, mb-ML, lb)->PN(1-2,3-3,4-6);
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于海南大学,未经海南大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201711329427.6/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种MIFI系统的检测装置、系统及方法
- 下一篇:一种新型一体式高端打磨设备