我在写归并排序时需要写一个递归实现,结果无限递归了,代码类似下面:
void fun(int a, int b)
{
int mid;
if (a < b)
{
mid = (a + b)/2;
fun (a,mid);
fun (mid,b);
}
}
我用vS2010试了一下,好像没问题,怎么回事?
求解?
这个x在函数中没定义怎么就用了呢
第一次mid = (a + b)/2,再fun (a,mid);mid肯定大于a,然后mid=(a + mid)/2,迭代到最后mid=a,fun (mid,b)最后mid=b;这程序实现了什么真没看懂,不过结果感觉没有意义;而且你这个函数是传值调用的,不是传引用的,还是void型,真不知道有什么意义