对k个序列按长度由大到小排序_排序算法(8)

本片文章做为排序算法系列的扩展介绍两个排序算法,并行排序和量子排序,不要被名字唬住,让我们来慢慢来探索吧。

双调排序

双调排序(bitonic sort)由ken batcher在1968年创建的,是基于比较的并行排序算法,其主要思想是将随机序列转换为双调序列,即序列单调递增,单调递减(移位双调序列也是双调序列),然后对双调序列进行排序的过程,算法主要分为两部分,第一步是将无序的序列转换为双调序列;第二部分将序列等倍划分为多个小序列比较排序直到整个序列有序。下面对其进行详细介绍。

赛前预热

双调序列

双调序列(Bitonic Sequence) 是指由一个 非严格增序列X 和 非严格减序列Y 构成的序列,任意两个数,都是双调序列。 (非严格指的是可以出现重复元素,或者NaN不参与排序)

定义:一个序列 a1,a2, …,an 是双调序列(Bitonic Sequence),如果: (1)存在一个 ak(1 ≤ k ≤ n),使得 a1 ≥ … ≥ ak ≤ … ≤ an 成立;或者 (2)序列能够循环移位满足条件(1) 条件(2)非常重要,因为好多序列表面不是,其实是双调的

##Batcher定理 将任意一个长为2n的双调序列A分为等长的两半X和Y,将X中的元素与Y中的元素一一按原序比较,即a[i]与a[i+n] (i < n)比较,将较大者放入MAX序列,较小者放入MIN序列。则得到的MAX和MIN序列仍然是双调序列,并且MAX序

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值