Bitonic Sort(雙調排序)

2021-06-08 22:27:37 字數 1352 閱讀 7652

#include#includeusing namespace std;

class bitonic_sorter;

bitonic_sorter::bitonic_sorter(int a,int len)

void bitonic_sorter::sort(bool direction)

void bitonic_sorter::sort_for_arbitray_length(bool direction)

void bitonic_sorter::bitonic_sort(int lowbundary,int len,bool direction)

}void bitonic_sorter::bitonic_sort_for_arbitrary_length(int lowbundary,int len,bool direction)

else

}}void bitonic_sorter::bitonic_merge(int lowbundary,int len,bool direction)

}int bitonic_sorter::greatest_power_of_2_lessthan(int len)

int main(int args, char** argv);

int num_2[10]=;

bitonic_sorter sorter_1(num_1,8);

bitonic_sorter sorter_2(num_2,10);

//對2^n個數進行排序

//公升序排列

sorter_1.sort(true);

copy(num_1,num_1+8,ostream_iterator(cout," "));

cout<

//降序排列

sorter_1.sort(false);

copy(num_1,num_1+8,ostream_iterator(cout," "));

cout<

//對任意個數進行排序

//公升序排列

sorter_2.sort_for_arbitray_length(true);

copy(num_2,num_2+10,ostream_iterator(cout," "));

cout<

//降序排列

說說雙調排序

一 簡介 雙調排序 bitonic sort 屬於排序網路 sorting network 的一種,它是一種可以平行計算的排序演算法。要理解雙調排序,首先需要理解雙調序列,雙調序列定義如下 如果序列滿足以下兩個條件之一,則稱之為雙調序列 存在乙個0 k n 1,使得為公升序序列,為降序序列 或存在乙...

平行計算實戰 雙調排序

假設序列a是乙個單調遞增序列,b是乙個單調di j遞減序列,那麼由a與b拼接而成的序列c就是乙個雙調序列。如圖1 接下來我們要介紹的乙個概念是雙調 操作 1 將數列的前半部分的各個元素 i值從0到n 2 1 和對應的後半部分的各個元素 i n 2到n 1 做一一比較 2 如果前半部分的元素大於後半部...

雙調排序思想及實現(C語言)

下屬專案 測試用例數量 什麼是雙調排序無0 雙調排序怎麼實現無1 雙調排序是基於四元素排序發展起來的一種排序方法,單純的雙調排序適用於2的冪次方個元素的序列的排序。而選擇排序和氣泡排序都屬於三元素排序。四元素排序的思想是這樣的,比如說有 3,2,1,4 這乙個序列,我們要按照從小到大 公升序 的順序...