编程珠玑第二版第六章习题(Java)

来源:互联网 发布:淘宝 买入职体检报告 编辑:程序博客网 时间:2024/06/17 17:59
这一章的程序性能分析通常在数据结构第一张就会讲到。

3 写个程序测试一下

public class TimeTest {public static void main(String[] args) {// TODO 自动生成的方法存根long time1, time2, time3, time4;float a = 0;double b = 0;float x = 1;double y = 1;for (int j = 1; j < 1000000000; j = j * 10) {a = 0;b = 0;x = 0;y = 0;time1 = System.currentTimeMillis();for (int i = 1; i < j; i++)a = a + x;time2 = System.currentTimeMillis();time3 = System.currentTimeMillis();for (int i = 1; i < j; i++)b = b + y;time4 = System.currentTimeMillis();System.out.println("float 执行" + String.valueOf(j) + "次加法得时间是 "+ String.valueOf(time2 - time1) + "毫秒");System.out.println("double 执行" + String.valueOf(j) + "次加法得时间是 "+ String.valueOf(time4 - time3) + "毫秒");System.out.println("-----------------------");}}}

运行结果:

float 执行1次加法得时间是 0毫秒
double 执行1次加法得时间是 0毫秒
-----------------------
float 执行10次加法得时间是 0毫秒
double 执行10次加法得时间是 0毫秒
-----------------------
float 执行100次加法得时间是 0毫秒
double 执行100次加法得时间是 0毫秒
-----------------------
float 执行1000次加法得时间是 0毫秒
double 执行1000次加法得时间是 0毫秒
-----------------------
float 执行10000次加法得时间是 0毫秒
double 执行10000次加法得时间是 0毫秒
-----------------------
float 执行100000次加法得时间是 1毫秒
double 执行100000次加法得时间是 1毫秒
-----------------------
float 执行1000000次加法得时间是 1毫秒
double 执行1000000次加法得时间是 1毫秒
-----------------------
float 执行10000000次加法得时间是 12毫秒
double 执行10000000次加法得时间是 10毫秒
-----------------------
float 执行100000000次加法得时间是 107毫秒
double 执行100000000次加法得时间是 140毫秒

强弱悬殊,高下立判。

然而每次运行结果不完全相同,不知为何。

后边的题目书上解释很详细了,不再赘述。

0 0
原创粉丝点击