串行的BitonicSort双调排序

本文介绍了BitonicSort双调排序算法,适用于并行化,尤其在GPU上能有效利用并行性。算法复杂度为O(n(logn)^2),在并行机上并行化后达到O((logn)^2)。该算法首先将数组分为Bitonic递增和递减序列,通过比较和交换操作逐步排序。文章提供了关键代码实现。
摘要由CSDN通过智能技术生成

     最近由于需要在GPU上做排序,因为GPU的并行性,所以需要一个并行的排序算法。而BitonicSort双调排序是一个非常适合并行化的排序算法,其在《算法导论》的排序网络一章对其基本原理做了描述与证明。有兴趣大家可以看看。

    作为个人的一个学习总结,这里只是对其性质做些简单介绍,以及它算法基本思想和几个重要的步骤。如果需要了解BitonicSort更加详细的理论证明,可以参考《算法导论》。

    首先BitonicSort的算法复杂度为O(n(logn)^2),看到这里大家会问比快排O(nlogn)要慢啊,干嘛要用它?但是它的n在并行机(比如GPU)上可以并行化掉n,那么复杂度就变为O( (logn)^2 )了,自然比快排等要快。

    下面说下它算法思想和为什么它适合并行化。

    BitonicSort主要算法思想:以有n个元素的0-1数组array递增排序为例。

    第一步:先数组划分成两半,一半是Bitonic递增序列,一半是Bitonic递减序列。Biton

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值