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

2016-02-19 10:07 5 1 收藏

想不想get新技能酷炫一下,今天图老师小编就跟大家分享个简单的java 使用简单的demo实例告诉你优化算法的强大教程,一起来看看吧!超容易上手~

【 tulaoshi.com - 编程语言 】

这里的demo是一个累加算法,如1,2,3,4.....n

即:sum = 1+2+3+4......+n;

我们可以这样做:
代码如下:

/**
      * 循环实现累加方法
      * @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/codebr
      * 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;
     }

我们可以写一个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/codebr
      * 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的值,来测试他们所消耗的系统时间....

(本文来源于图老师网站,更多请访问https://www.tulaoshi.com/bianchengyuyan/)

当然不同配置的机器运行结果是不一样的...

我机器运行情况:
代码如下:

使用循环累加方法从[1]累加到[10000000]用时 : [24]ms,结果:50000005000000
使用高斯方法从[1]累加到[10000000]用时 : [0]ms,结果:50000005000000

(本文来源于图老师网站,更多请访问https://www.tulaoshi.com/bianchengyuyan/)

来源:https://www.tulaoshi.com/n/20160219/1593429.html

延伸阅读
标签: Web开发
使用CSS Sprites是在你尽可能地使用其他的优化策略后最后的一招。它将你的所有图片放在一张图中,即你的一张CSS Sprites由10张图片组成,那将避免9次HTTP请求,这减少的9次请求时延,正是加速的加载时间。这也有问题,跟每个HTTP请求的服务器开销一样,需由Apache的子进程管理,占用20MB的内存。你最好帮你的服务器进程减少HTTP请求:卸载...
1  RSA算法的原理如下: 1.1原理      假设我们需要将信息从机器A传到机器B,首先由机器B随机确定一个Key,我们称之为密匙private_key,将这个可KEY始终保存在机器B中而不发出来;然后,由这个private_key计算出另一个Key,我们称之为公匙Public_key。这个Public_key的特性是几乎不可能通过该K...
标签: Java JAVA基础
摘要:本文介绍了在JAVA环境下如何实现IDEA对称加密算法。由于电子商务和电子政务的普及,安全加密技术在其中应用非常广泛,对安全加密技术的要求也很高。目前在JAVA环境下实现IDEA加密具有很多的优势,因为JAVA是基于面向对象的编程语言,并且由于它的平台无关性能被大量应用于Internet的开发。 关键字:IDEA(Internation ...
精彩实例告诉你如何捕捉孩子的可爱瞬间   在日常生活中,拍摄孩子的一举一动。要拍好孩子着实不易,因为他们不会听你指挥,但是这样往往可以拍摄到最自然、真实的效果。你可以偷偷拍摄,或者让他们习惯相机的存在。 表现人物个性最常用的方法就是在肖像照中加入与他们日常生活息息相关的物品。例如说给小孩子拍照的时候,就让他...
标签: ASP
  简介 首先简单介绍一下有关加密的背景。由于美国禁止几种密码算法的对外出口的 加密位数(例如SSL的40位加密限制),本文将介绍一种ASP可以使用的简单字符加密算法, 而不是那些受限制的加密算法。其实,这里介绍的加密算法对于一般的运用来说已经足够 解密人麻烦一阵子的了。它的加密基础是最简单的Vernum密码方法,我...

经验教程

863

收藏

63
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部