zoukankan      html  css  js  c++  java
  • for 循环的效率

    1、单层for循环

    long start =System.currentTimeMillis();
    int sum=0;
    for(int i=0;i<1000000000;i++)
    {
    sum=1+1;
    }
    long end = System.currentTimeMillis();
    System.out.println(end-start); //输出时间差为3-5之间

    2、双层for循环

    long start =System.currentTimeMillis();
    int sum=0;
    for(int i=0;i<1;i++)
    {
    for(int j=0;j<1000000000;j++)
    sum=1+1;
    }
    long end = System.currentTimeMillis();
    System.out.println(end-start); //输出时间差为3-8之间

    3、双层for循环

    long start =System.currentTimeMillis();
    int sum=0;
    for(int i=0;i<1000000000;i++)
    {
    for(int j=0;j<1;j++)
    sum=1+1;
    }
    long end = System.currentTimeMillis();
    System.out.println(end-start);//输出时间差为1000以上

    比较1、2、3中三种情况下,消耗情况

     i<10000

    变量 实例化 初始化 比较 自增
    i 1 1 10000 10000

    i<1      j<10000

    变量 实例化 初始化 比较 自增
    i 1 1 1 1
    j 1 1 10000 10000

    i<10000    j<1

    变量 实例化 初始化 比较 自增
    i 1 1 10000 10000
    j 10000 10000 1 1

    以上可见,优化for循环时,可以把实例化和初始化放在循环之外进行。

    修改如下:

    1long start =System.currentTimeMillis();
    int i=0;
    int j=0;
    int sum=0;
                    for(;i<1000000000;i++)
    {
    sum=1+1;
    }
                    long end = System.currentTimeMillis();
    System.out.println(end-start);   //输出4
    2long start =System.currentTimeMillis();
    int i=0;
    int j=0;
    int sum=0;
    for(;i<1000000000;i++)
    {
    for(;j<1;j++)
    sum=1+1;
    }
                    long end = System.currentTimeMillis();
    System.out.println(end-start);   //输出5
    3long start =System.currentTimeMillis();
    int i=0;
    int j=0;
    int sum=0;
    for(;i<1;i++)
    {
    for(;j<1000000000;j++)
    sum=1+1;
    }
                    long end = System.currentTimeMillis();
    System.out.println(end-start);   //输出5
  • 相关阅读:
    Ajax缓存解决办法【转】
    【转】关于找工作的鸡零狗碎(续)
    科技爱好者周刊(第 167 期):广告拦截器太过分了
    科技爱好者周刊(第 166 期):视频学习胜过读书吗?
    GitHub镜像
    支付宝小程序环境判断
    怎么样给背景图加透明度
    JavaScript如何实现上拉加载,下拉刷新?
    什么是HTTP? HTTP 和 HTTPS 的区别?
    网页中的一键加QQ群、唤起QQ群聊天窗口
  • 原文地址:https://www.cnblogs.com/kisshappyboy/p/10785566.html
Copyright © 2011-2022 走看看