可以参考 本博客 排序总结<quick_sort>: http://blog.csdn.net/zlb_xidian/archive/2010/07/23/5756921.aspx /*一个算法调用另外一个算法时,需要 * 1 传入参数信息给被调用算法 * 2 为算法的局部变量分配存储区 * 3 将控制转移到被调用算法的入口 * * 当有多个算法嵌套时,按照栈的原则进行,即先调用后返回 * * 递归只是这多个算法是同一个算法而已 * 以下是一个比较复杂的调用: * 连续压入4个栈函数,释放2个后,又压入1个,... * 分xi时,具体的算法找出具体的规律 * * 后面的例程显示了没有for时的规则的递归处理过程 * */ #include <iostream> #include <stdio.h> using namespace std; int cc(int i) { cout<<"Called >>>>>>>> flag:"<<i<<endl; int temp = i; for(; i<4;) { printf("[%d]with i=%d/n",cc(++i),i); } cout<<"Ended ------ flag:"<<temp<<endl; return i; } int main() { cc(1); return 1; } #include <iostream> using namespace std; int call = 0; int getN(int n) { call++;//call是一个全局变量 cout<<"called "<<call<<" with flag(n):"<<n<<endl; if(n==1) { // cout<<"ended "<<call<<endl; return 1; } int temp = n*getN(n-1); cout<<"ended "<<call<<" with flag(n):"<<n<<endl; return temp; } int main() { cout<<"getN"<<getN(6)<<endl; return 1; }