diff --git a/Bitonic_sort.cpp b/Bitonic_sort.cpp new file mode 100644 index 0000000..cd7e480 --- /dev/null +++ b/Bitonic_sort.cpp @@ -0,0 +1,41 @@ +#include +using namespace std; + +void compAndSwap(int a[], int i, int j, int dir){ + if (dir==(a[i]>a[j])) + swap(a[i],a[j]); +} + +void bitonicMerge(int a[], int low, int cnt, int dir){ + if (cnt>1){ + int k = cnt/2; + for (int i=low; i1){ + int k = cnt/2; + bitonicSort(a, low, k, 1); + bitonicSort(a, low+k, k, 0); + bitonicMerge(a,low, cnt, dir); + } +} +void sort_fun(int a[], int N, int up) +{ + bitonicSort(a,0, N, up); +} +int main() +{ + int a[]= {3, 7, 4, 8, 6, 2, 1, 5}; + int N = sizeof(a)/sizeof(a[0]); + int up = 1; + sort_fun(a, N, up); + cout<<"Sorted array: "<