我正在调查bitonic排序算法,
我意识到这种算法似乎有两种形式:
维基百科算法 http://en.wikipedia.org/wiki/Bitonic_sorter
替代算法 http://www.cs.rutgers.edu/~venugopa/parallel_summer2012/bitonic_overview.html (也是CUDA样本库中使用的那个)
维基百科算法:
1 2 3 4
d c b a // start
c d a b // compare (1, 2) (3, 4)
b a d c // compare (1, 4) (2, 3)
a b c d // compare (1, 2) (3, 4)
替代算法:
1 2 3 4
d c b a // start
c d a b // compare (1, 2) (3, 4)
a b c d // compare (1, 3) (2, 4)
在这个简单的例子中,替代算法似乎更有效
这两种算法是否相同?
第一个是否有任何优势?