我有一段快排的算法,遇到了stack overflow的问题,但是这个问题很诡异
1、在自己的电脑上不会出现问题
2、在服务器上debug下会溢出,release没问题
我实在是想不明白为什么拉!
void quick_sort_int(int* s, unsigned int* o, int l, int r)
{
if (l < r)
{
//Swap(s[l], s[(l + r) / 2]); //将中间的这个数和第一个数交换 参见注1
int temp;
int i = l, j = r;
int x = s[l];
while (i < j)
{
//cout<<i<<"\t"<<j<<endl;
while(i < j && s[j] >= x) // 从右向左找第一个小于x的数
j--;
if(i < j)
{
s[i] = s[j];
temp = o[i];
o[i] = o[j];
o[j] = temp;
i++;
}
while(i < j && s[i] < x) // 从左向右找第一个大于等于x的数
i++;
if(i < j)
{
s[j] = s[i];
temp = o[i];
o[i] = o[j];
o[j] = temp;
j--;
}
}
s[i] = x;
quick_sort_int(s, o, l, i - 1); // 递归调用
quick_sort_int(s, o, i + 1, r);
}
}
我的Debug文件夹里已经放进去了opencv的dll文件。不知道这种情况下是哪些dll没被加载呢?
追答你最好还是用release版的。我记得貌似有个工具是可以检测到你的程序用到了哪些dll文件。但是没有必要吧。本身来说,你的程序肯定在最终的时候是要放release版的。
就是处理一个18万的数组,和对应的index
index就是[0,....,18万-1]
让index和mean同时排序