源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

java 使用简单的demo实例告诉你优化算法的强大

  • 时间:2021-04-28 15:55 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:java 使用简单的demo实例告诉你优化算法的强大
这里的demo是一个累加算法,如1,2,3,4.....n 即:sum = 1+2+3+4......+n; 我们可以这样做:
[url=http://zhidao.baidu.com/question/411055258.html]      * @param value       * @return       */      private static long gaosi(long value) {          long sum = 0;          sum = (value + 1) * value / 2;          return sum;      }
我们可以写一个demo来测试他们的差别:
/**   *   */  package com.b510.arithmetic;  /**   * 累加算法实现<br>   *   * @date 2013-4-16   * @author hongten   *   */  public class AddArithmetic {      /**       * 循环实现累加方法       * @param value       * @return       */      private static long cycle(long value) {          long sum = 0;          for (long i = 1,v = value; i <= v; i++) {              sum += i;          }          return sum;      }      /**       * 高斯方法:<code>(n+1)*n/2</code><br>       * you can read more from <a href="http://zhidao.baidu.com/question/411055258.html">Here</a>       * @param value       * @return       */      private static long gaosi(long value) {          long sum = 0;          sum = (value + 1) * value / 2;          return sum;      }      public static void main(String[] args) {          //清理一下内存,但不一定会执行          System.gc();          // you should change value,then get the different results          long value = 10000000;          long sum = 0;          long start = System.currentTimeMillis();          sum = cycle(value);          long end = System.currentTimeMillis();          System.out.println("使用循环累加方法从[1]累加到["+value+"]用时 : ["+(end - start) + "]ms,结果:"+ sum);          //清理一下内存,但不一定会执行          System.gc();          start = System.currentTimeMillis();          sum = gaosi(value);          end = System.currentTimeMillis();          System.out.println("使用高斯方法从[1]累加到["+value+"]用时 : ["+(end - start) + "]ms,结果:"+ sum);      }  }
你可以改变main方法中的value的值,来测试他们所消耗的系统时间.... 当然不同配置的机器运行结果是不一样的... 我机器运行情况:
[u]复制代码[/u] 代码如下:
使用循环累加方法从[1]累加到[10000000]用时 : [24]ms,结果:50000005000000 使用高斯方法从[1]累加到[10000000]用时 : [0]ms,结果:50000005000000
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部