欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

java 使用簡(jiǎn)單的demo實(shí)例告訴你優(yōu)化算法的強(qiáng)大

 更新時(shí)間:2013年05月02日 15:50:53   作者:  
本篇文章介紹了,在java中使用簡(jiǎn)單的demo實(shí)例告訴你優(yōu)化算法的強(qiáng)大。需要的朋友參考下

這里的demo是一個(gè)累加算法,如1,2,3,4.....n

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

我們可以這樣做:

復(fù)制代碼 代碼如下:

/**
      * 循環(huán)實(shí)現(xià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;
     }

另一種方法(高斯方法):
復(fù)制代碼 代碼如下:

/**
      * 高斯方法:<code>(n+1)*n/2</code><br>
      * you can read more from <a >Here</a>
      * @param value
      * @return
      */
     private static long gaosi(long value) {
         long sum = 0;
         sum = (value + 1) * value / 2;
         return sum;
     }

我們可以寫(xiě)一個(gè)demo來(lái)測(cè)試他們的差別:
復(fù)制代碼 代碼如下:

/**
  *
  */
 package com.b510.arithmetic;

 /**
  * 累加算法實(shí)現(xiàn)<br>
  *
  * @date 2013-4-16
  * @author hongten
  *
  */
 public class AddArithmetic {

     /**
      * 循環(huán)實(shí)現(xià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</code><br>
      * you can read more from <a >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) {
         //清理一下內(nèi)存,但不一定會(huì)執(zhí)行
         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("使用循環(huán)累加方法從[1]累加到["+value+"]用時(shí) : ["+(end - start) + "]ms,結(jié)果:"+ sum);
         //清理一下內(nèi)存,但不一定會(huì)執(zhí)行
         System.gc();
         start = System.currentTimeMillis();
         sum = gaosi(value);
         end = System.currentTimeMillis();
         System.out.println("使用高斯方法從[1]累加到["+value+"]用時(shí) : ["+(end - start) + "]ms,結(jié)果:"+ sum);

     }

 }

你可以改變main方法中的value的值,來(lái)測(cè)試他們所消耗的系統(tǒng)時(shí)間....

當(dāng)然不同配置的機(jī)器運(yùn)行結(jié)果是不一樣的...

我機(jī)器運(yùn)行情況:

復(fù)制代碼 代碼如下:

使用循環(huán)累加方法從[1]累加到[10000000]用時(shí) : [24]ms,結(jié)果:50000005000000
使用高斯方法從[1]累加到[10000000]用時(shí) : [0]ms,結(jié)果:50000005000000

相關(guān)文章

  • JAVA中五個(gè)重定向的方式盤(pán)點(diǎn)

    JAVA中五個(gè)重定向的方式盤(pán)點(diǎn)

    頁(yè)面重定向即頁(yè)面從當(dāng)前請(qǐng)求的頁(yè)面,有條件或者定時(shí)跳轉(zhuǎn)到其他頁(yè)面,下面這篇文章主要給大家介紹了關(guān)于JAVA中五個(gè)重定向的方式,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2022-12-12
  • java工具類(lèi)StringUtils使用實(shí)例詳解

    java工具類(lèi)StringUtils使用實(shí)例詳解

    這篇文章主要為大家介紹了java工具類(lèi)StringUtils使用實(shí)例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-05-05
  • MyBatis中OGNL的使用教程詳解

    MyBatis中OGNL的使用教程詳解

    有些人可能不知道MyBatis中使用了OGNL,有些人知道用到了OGNL卻不知道在MyBatis中如何使用,下面這篇文章主要介紹了MyBatis中OGNL的使用教程,文中介紹的非常詳細(xì),需要的朋友可以參考借鑒,下面來(lái)一起看看吧。
    2017-06-06
  • Java中的內(nèi)部類(lèi)你了解嗎

    Java中的內(nèi)部類(lèi)你了解嗎

    這篇文章主要為大家介紹了Java的內(nèi)部類(lèi),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來(lái)幫助
    2022-01-01
  • java實(shí)現(xiàn)登錄驗(yàn)證碼功能

    java實(shí)現(xiàn)登錄驗(yàn)證碼功能

    這篇文章主要為大家詳細(xì)介紹了java實(shí)現(xiàn)登錄驗(yàn)證碼功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-10-10
  • SpringBoot 多Profile使用與切換方式

    SpringBoot 多Profile使用與切換方式

    這篇文章主要介紹了SpringBoot 多Profile使用與切換方式,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-04-04
  • Java Stax解析XML示例

    Java Stax解析XML示例

    這篇文章主要介紹了Java Stax解析XML示例,幫助大家更好的理解和使用Java,感興趣的朋友可以了解下
    2020-09-09
  • java生成圖片驗(yàn)證碼返回base64圖片信息方式

    java生成圖片驗(yàn)證碼返回base64圖片信息方式

    這篇文章主要介紹了java生成圖片驗(yàn)證碼返回base64圖片信息方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-08-08
  • Springboot中使用Redisson+AOP+自定義注解實(shí)現(xiàn)訪(fǎng)問(wèn)限流與黑名單攔截

    Springboot中使用Redisson+AOP+自定義注解實(shí)現(xiàn)訪(fǎng)問(wèn)限流與黑名單攔截

    本文主要介紹了Springboot中使用Redisson+AOP+自定義注解實(shí)現(xiàn)訪(fǎng)問(wèn)限流與黑名單攔截,包含針對(duì)用戶(hù)IP限流,整個(gè)接口的訪(fǎng)問(wèn)限流,以及對(duì)某個(gè)參數(shù)字段的限流,并且支持請(qǐng)求限流后處理回調(diào),感興趣的可以了解一下
    2024-02-02
  • 詳解slf4j+logback在java工程中的配置

    詳解slf4j+logback在java工程中的配置

    這篇文章主要介紹了slf4j+logback在java工程中的配置,對(duì)日志組件logback也進(jìn)行了簡(jiǎn)單介紹,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2015-08-08

最新評(píng)論