If we do a Bitonic merge we still of 2 bitonic sequences of length 'n' each.
void BitonicMerge(int *array,size_t size){
int i;
assert(!(size%2));
for(i=0;i lessthan size/2;i++){
if(a[i+(size/2)] < a[i]){
swap(a[i+(size/2)],a[i]);
}
}
What we have is now two Bitonic sequences. Doing a Bitonic sort on a parallel machines with 'p' processors and 'n' elements n >> p. Next post I'll post my code to do the Bitonic merge of the sequences.
No comments:
Post a Comment