一种插入排序的方法和装置制造方法及图纸

技术编号:2831618 阅读:308 留言:0更新日期:2012-04-11 18:40
本发明专利技术实施例公开了一种插入排序的方法,用于将待插入数据的关键字按排序队列中节点数据的关键字的排序规则插入所述排序队列,包括以下步骤:将所述排序队列中各节点数据的关键字与所述待插入数据的关键字进行比较;根据所述比较结果对所述排序队列中的节点数据进行移位操作;在进行所述移位操作的同时将所述待插入数据插入所述排序队列。通过本发明专利技术实施例,在一个时钟周期内完成比较、移位和插入操作,取消了反向移位逻辑,使应用该插入排序的方法的排序器可以实现线速工作,并且简化了排序器的设计,扩大了排序器的应用范围。

【技术实现步骤摘要】

本专利技术涉及电子
,特别涉及一种插入排序的方法和装置。技术背景目前在大规模的集成电路设计中经常会用到排序器,例如在交换网中, 通过排序器选择最短或最长队列,最高或最低优先级,以及最长或最短排队 时间的数据包等。其中,插入法排序器是一种经常被用到的电路。插入法排序的原理是 每次将一个待排序的数值例如数据或关键字,按其大小插入到前面已经顺 序排好的长度为N的序列中的适当位置,并得到一个顺序排好的长度为N+1的 序列。重复以上步骤,直到全部数值完全插入为止。假设待排序的数值存放 在数组R[l,…,n]中。初始时,R[l]自成一个序列,从i:2起直至i^n为止,依次 将R[i]按插入算法插入到当前的序列R[l,…,i-l]中,最终生成含n个数值的序 列。 一个典型的直接插入法排序电路如图l所示。排序器中每一个节点(Node)存贮一个数值。在初始情况下,所有节点 中都保存一个-oo值,即较待排序数据的最小值更小的值。然后依次插入待排 序数据。在排序器运行过程中,排序器中的各节点已经按照关^^建字的大小排 好了顺序,假设图l中排序器各节点关键字从左到右依次减小。当一个新的数 据In本文档来自技高网...

【技术保护点】
一种插入排序的方法,用于将待插入数据的关键字按排序队列中节点数据的关键字的排序规则插入所述排序队列,其特征在于,包括以下步骤:将所述排序队列中各节点数据的关键字与所述待插入数据的关键字进行比较;根据所述比较结果对所述排序队列中的节点数据进行移位操作;在进行所述移位操作的同时将所述待插入数据插入所述排序队列。

【技术特征摘要】
1、一种插入排序的方法,用于将待插入数据的关键字按排序队列中节点数据的关键字的排序规则插入所述排序队列,其特征在于,包括以下步骤将所述排序队列中各节点数据的关键字与所述待插入数据的关键字进行比较;根据所述比较结果对所述排序队列中的节点数据进行移位操作;在进行所述移位操作的同时将所述待插入数据插入所述排序队列。2、 如权利要求1所述插入排序的方法,其特征在于,所述根据比较结果 对所述排序队列中的节点数据进行移位操作包括将小节点数据向节点数据的关键字小于所述小节点数据的关键字的节点 方向进行移位操作,所述小节点数据为所述排序队列节点数据中关键字小于 或等于所述待插入数据的关键字的节点数据;或者,将大节点数据向节点数据的关键字大于所述大节点数据的关键字的节点 方向进行移位操作,所述大节点数据为所述排序队列节点数据中关键字大于 或等于所述待插入数据的关4定字的节点数据。3、 如权利要求1所述插入排序的方法,其特征在于,所述将待插入数据 插入所述排序队列包括将所述待插入数据插入所述排序队列的空节点,所 述空节点通过对所述排序队列中的节点数据进行移位才喿作获得。4、 如权利要求1至3任意一项所述插入排序的方法,其特征在于,所述 比较操作、所述移位操作和所述插入操作在一个时钟周期内完成。5、 如权利要求1所述插入排序的方法,其特征在于,所述将排序队列中 各节点数据的关键字与所述待插入数据的关键字进行比较通过组合逻辑电路 实现。6、 如权利要求1所述插入排序的方法,其特征在于,所述根据比较结果 对所述排序队列中的节点数据进行移位操作通过时序电路实现。7、 一种插入排序器,用于将待插入数据的关键字按排序队列中节点数据 的关键字的排序规则插入所述排序队列,其特征在于,包括比较模块,用于将排序队列中各节点数据的关键字与所述待插入数据的 关键字进行比较; 移位才莫块,与所述比较模块连接,用于根据所述比较模块的比较结果对所述排序队列中的节点数据进行移位操作;插入模块,与所述移位模块连接,用于在所迷移位模块进行移位操作的 同时将所述待插入数据插入所述排序队列。8、 如权利要求7所述插入排序器,其特征在于,所述移位模块包括 小数据移位子模块,用于将小节点数据向节点数据的关键字小于所述小节点数据的关键字的节点方向进行移位操作,所述小节点数据为所述排序队 列节点数据中关键字小于或等于所述待插入数据的关键字的节点数据;或者, 大数据移位子模块,用于将大节点数据向节点数据的关键字大于所述大 节点数据的关键字的节点方向进行移位操作,所述大节点数据为所述排序队 列节点数据中关键字大于或等于所述待插入数据的关4建字的节点数据。9、 如权利要求7所述插入排序器,其特征在于,所述插入才莫块为空节点 插入^t块,用于将所述待插入数据插入所述排序队列的空节点,所述空节点 通过对所述排序队列中的节点数据进行移位操作获得。10、 如权利要求7所述插入排序器,其特征在于,所述比4交^t块的比较 操作、所述移位模块的移位操作和所述插入模块的插入操作在一个时钟周期 内完成。11、 如权利要求IO所述插入排序器,其特征在于,所述比较模块通过组 合逻辑电路实现。12、 如权利要求I...

【专利技术属性】
技术研发人员:林云王新建韩新伟
申请(专利权)人:华为技术有限公司
类型:发明
国别省市:94[中国|深圳]

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1