双调排序(bitonic sort)属于排序网络(Sorting Network)的一种。相较于传统的排序算法,排序网络真正的研究价值在于,假如有机器可以同时处理多个比较器,排序的速度将大幅度提高。简单来说,它是一种可以并行计算的排序算法。
双调归并网络是基于Batcher定理而构建的。Batcher定理是说将任意一个长为2n的双调序列A分为等长的两半X和Y,将X中的元素与Y中的元素一一按原序比较,即a[i]与a[i+n](i
根据这个原理,我们可以将一个输入的n元素双调序列首先通过洗牌比较操作得到一个MAX序列和一个MIN序列,然后通过两个n/2阶双调归并器处理就可以得到一个有序序列。