compAndSwap(
inta[],
inti,
intj,
intdir) {
13 if(dir == (a[i] > a[j]))
14std::swap(a[i], a[j]);
21voidbitonicMerge(
inta[],
intlow,
intcnt,
intdir) {
24 for(
inti = low; i < low +
k; i++) compAndSwap(a, i, i + k, dir);
25bitonicMerge(a, low, k, dir);
26bitonicMerge(a, low + k, k, dir);
33voidbitonicSort(
inta[],
intlow,
intcnt,
intdir) {
38bitonicSort(a, low, k, 1);
41bitonicSort(a, low + k, k, 0);
45bitonicMerge(a, low, cnt, dir);
51voidsort(
inta[],
intN,
intup) { bitonicSort(a, 0, N, up); }
55 inta[] = {3, 7, 4, 8, 6, 2, 1, 5};
56 intN =
sizeof(a) /
sizeof(a[0]);
61std::cout <<
"Sorted array: \n";
62 for(
inti = 0; i < N; i++) std::cout << a[i] <<
" ";
double k(double x)
Another test function.
int main()
Main function.
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4