сортировка в многопотоке медленнее чем в однопотоке?
                  
                  
                  void quick_sort_mp(int *array, int N)
                  
                  
                  {
                  
                  
                      int i = 0, j = N;
                  
                  
                      int p = array[N >> 1];
                  
                  
                  
                  
                  
                      do
                  
                  
                      {
                  
                  
                          while (array[i] < p)
                  
                  
                              ++i;
                  
                  
                          while (array[j] > p)
                  
                  
                              --j;
                  
                  
                  
                  
                  
                          if (i <= j)
                  
                  
                          {
                  
                  
                              std::swap(array[i], array[j]);
                  
                  
                              ++i;
                  
                  
                              --j;
                  
                  
                          }
                  
                  
                      } while (i <= j);
                  
                  
                  
                  
                  
                      #pragma omp parallel
                  
                  
                      {
                  
                  
                          #pragma omp task
                  
                  
                          {
                  
                  
                              if (j > 0) quick_sort_mp(array, j);
                  
                  
                          }
                  
                  
                          
                  
                  
                          #pragma omp task
                  
                  
                          {
                  
                  
                             if (N > i) quick_sort_mp(array + i, N - i);
                  
                  
                          }
                  
                  
                      }
                  
                  
                  }
                  
                  
                
сколько данных?
Обсуждают сегодня