程序优化--效率的计算

通过计算一个程序执行所用时间,得出算法是否高效率

long start=System.currentTimeMillis();系统当前时间(距离1970年1月1日午夜过去了多长时间--以毫秒计)

....算法

long end=System.currentTimeMillis();

System.out.println("所用时间"+(end-start)+"毫秒");

题:列出1到100内的所有质数

以下程序为了明确计算算法效率,改为1到100000内的质数

 1 class TestZhiShu 
 2 {
 3     public static void main(String[] args) 
 4     {
 5         long start=System.currentTimeMillis();
 6         for(int i=1;i<=100000;i++){
 7             int k=0;//定义一个变量
 8             for(int j=1;j<=i;j++){
 9                 
10                 int sum=i%j;//用每次遍历的数取模从1到它本身
11                 if(sum==0)
12                     k++;//如果可以整除,k++
13                 if(k>2)
14                     break;//一旦k>2肯定不是质数,就跳出循环,节约执行时间增加效率
15             }
16             if(k<=2){//因为质数只能被1和它本身整除,所以k<=2时输出这个数
17                 System.out.println(i);
18             }
19         }
20         long end=System.currentTimeMillis();
21         System.out.println("执行时间为"+(end-start)+"毫秒");//29539毫秒;bresk优化后9469毫秒
22     }
23 }

运行结果:(优化前)

优化后:

原文地址:https://www.cnblogs.com/yunqing/p/4731267.html