慎用Java递归调用 (二)

2014-11-24 11:49:52 · 作者: · 浏览: 37
--------------

startTime = System.currentTimeMillis();
System.out.println("循环调用起始时间:" + startTime);
for (int index = totalTimes; index > 0; index--)
{
cycle(index, time);
time++;
}
System.out.println("循环调用结束时间:" + System.currentTimeMillis());
System.out.println("总耗时:" + (System.currentTimeMillis() - startTime));
System.out.println("--------------------整个代码如下:
[java]
public class RecursionTest
{

public static void recursion(int totalTimes,int time)
{
if(totalTimes > 1)
{
System.out.println("这是第 " + time + "次调用!");
totalTimes--;
time++;
recursion(totalTimes, time);
}
else
{
System.out.println("调用结束,共调用了" + time + "次");
return;
}
}

public static void cycle(int totalTimes, int time)
{
if(totalTimes > 1)
{
System.out.println("这是第 " + time + "次调用!");
}
else
{
System.out.println("调用结束,共调用了" + time + "次");
}
}

public static void main(String[] args)
{
int totalTimes = 100000;
int time = 1;
long startTime = System.currentTimeMillis();
System.out.println("嵌套调用起始时间:" + startTime);
recursion(totalTimes, time);
System.out.println("嵌套调用结束时间:" + System.currentTimeMillis());
System.out.println("总耗时:" + (System.currentTimeMillis() - startTime));
System.out.println("------------------------------------------------------------");

startTime = System.currentTimeMillis();
System.out.println("循环调用起始时间:" + startTime);
for (int index = totalTimes; index > 0; index--)
{

cycle(index, time);
time++;
}
System.out.println("循环调用结束时间:" + System.currentTimeMillis());
System.out.println("总耗时:" + (System.currentTimeMillis() - startTime));
System.out.println("------------------------------------------------------------");
}

}

public class RecursionTest
{

public static void recursion(int totalTimes,int time)
{
if(totalTimes > 1)
{
System.out.println("这是第 " + time + "次调用!");
totalTimes--;
time++;
recursion(totalTimes, time);
}
else
{
System.out.println("调用结束,共调用了" + time + "次");
return;
}
}

public static void cycle(int totalTimes, int time)
{
if(totalTimes > 1)
{
System.out.println("这是第 " + time + "次调用!");
}
else
{
System.out.println("调用结束,共调用了" + time + "次");
}
}

public static void main(String[] args)
{
int totalTimes = 100000;
int time = 1;
long startTime = System.currentTimeMillis();
System.out.println("嵌套调用起始时间:" + startTime);
recursion(totalTimes, time);
System.out.println("嵌套调用结束时间:" + System.currentTimeMillis());
System.out.println("总耗时:" + (System.currentTimeMillis() - startTime));
System.out.println("------------------------------------------------------------");

startTime = System.currentTimeMillis();
System.out.println("循环调用起始时间:" + startTime);
for (int index = totalTimes; index > 0; index--)
{
cycle(index, time);
time++;
}
System.out.println("循环调用结束时间:" + System.currentTimeMillis());
System.out.println("总耗时:" + (System.current