Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- template <class iterator,class comp>
- void _par_sort5( iterator begin, iterator end, comp cmp, int glebokosc)
- {
- if(glebokosc>0)
- {
- cout<<"par"<<endl;
- iterator polowa = begin + (end-begin)/2;
- #pragma omp parallel sections num_threads(2)
- {
- #pragma omp section
- _par_sort5( begin, polowa, cmp, glebokosc-1);
- #pragma omp section
- _par_sort5( polowa, end, cmp, glebokosc-1);
- }//pierwza sekcja
- cout <<"merge "<<end-begin<<endl;
- inplace_merge(begin,polowa,end,cmp);
- }
- else
- sort( begin, end, cmp);
- };
- template <class iterator,class comp>
- void par_sort5(iterator begin, iterator end, comp cmp)
- {
- int rdzeni = omp_get_num_procs();
- int glebokosc=0;
- int nest=omp_get_nested();
- omp_set_nested(1);
- while( rdzeni>1)
- {
- rdzeni=(rdzeni+1)/2;
- glebokosc++;
- }
- _par_sort5( begin, end, cmp, glebokosc);
- omp_set_nested(nest);
- };
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement