Answer the question
In order to leave comments, you need to log in
Is it possible to increase stack size in Visual c++?
void QuickSort(string masStr[], int first, int last)
{
int f = first, l = last;
string temp;
char midStr[MAX_LENGTH_STR + 1];
strcpy(midStr, masStr[(f + l) / 2].c_str()); // Находим разделительный элемент в середине массива
while (strcmp(masStr[f].c_str(), midStr)<0)
f++; // Находим элемент от левого индекса.
while (strcmp(masStr[l].c_str(), midStr)>0)
l--; // Находим элемент от правого индекса.
if (f <= l) // Если индексы не пересекаются, меняем
{
temp = masStr[f];
masStr[f] = masStr[l];
masStr[l] = temp;
f++;
l--;
}
//Если правый индекс не достиг левой границы массива, нужно повторить сортировку левой части.
#pragma omp parallel
if (first < l) QuickSort(masStr, first, l);
//Если левый индекс не достиг правой границы массива, нужно повторить сортировку правой части.
if (f < last) QuickSort(masStr, f, last);
}
Answer the question
In order to leave comments, you need to log in
Stack increase is a crutch. Change the algorithm and expand the recursion into a loop.
You can increase it like this , you can do the same with the directive in the code#pragma comment(linker, "/STACK:16777216")
Didn't find what you were looking for?
Ask your questionAsk a Question
731 491 924 answers to any question