Bitonic sort(双调排序)

最近在上Udacity的《Introduction to parallel programming》课程,里面介绍了一种很有趣的平行算法——Bitonic sort(双调排序)算法。在课程上我一直没懂为什么Bitonic sort算法保证了排序的正确性,于是花了几天功夫查找了相关资料。希望有同样疑问的你看到这篇文章会有所启示~


Bitonic sequence

为了明白Bitonic sort算法,我们首先要了解Bitonic sequence(双调序列)。
如果一个序列A=[x0, x1, x2, …, xn-1],存在一个下标i(0≤i≤n-1),使得:

x0≤ x1≤ …≤ xi, and xi≥ xi+1≥ …≥ xn-1

那么我们称这个序列是Bitonic(双调的)。
值得注意的是:
1. 一个序列如果是完全的升序或降序(或者说非降序和非升序更为严谨,但是在本文中为了方便理解,认为升序=非降序,降序=非升序),它也是Bitonic的。
2. Bitonic序列的子序列仍为Bitonic的。
3. 将一个一个Bitonic序列进行循环移位操作后,也是Bitonic

  • 8
    点赞
  • 29
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值