to:风居住的街道
void select(int k){
int i;
if (k + 2 == len)
{
for (i = 0; i < len; i += 2)
printf("(%d, %d)", a[i], a[i+1]);
printf("\n");
count++;
return;
}
select(k + 2);
/***********************************************************************
我就是这里弄不明白。函数到这里递归调用了,那么后面的代码在什么时候应用呢?运行到递归语句的时候,应该是立即调用自身,那么后面的这些语句什么时候运行?另外,有些程序在运用递归的时候,函数中写了两条递归语句,那么到底是怎么运行的呢?先运行哪条呢?
劳烦您分神解答,谢谢~
************************************************************************/
for (i = k + 2; i < len; i++)
{
SWAP(a[k + 1], a[i]);
select(k + 2);
SWAP(a[k + 1], a[i]);
}
}