java 使用簡單的demo執行個體告訴你最佳化演算法的強大

來源:互聯網
上載者:User

這裡的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</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;
}

我們可以寫一個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的值,來測試他們所消耗的系統時間....

當然不同配置的機器運行結果是不一樣的...

我機器運行情況:

複製代碼 代碼如下:使用迴圈累加方法從[1]累加到[10000000]用時 : [24]ms,結果:50000005000000
使用高斯方法從[1]累加到[10000000]用時 : [0]ms,結果:50000005000000

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.