手机
当前位置:查字典教程网 >编程开发 >Java >java 使用简单的demo实例告诉你优化算法的强大
java 使用简单的demo实例告诉你优化算法的强大
摘要:这里的demo是一个累加算法,如1,2,3,4.....n即:sum=1+2+3+4......+n;我们可以这样做:复制代码代码如下:/*...

这里的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

【java 使用简单的demo实例告诉你优化算法的强大】相关文章:

java正则表达式提取数字的方法实例

Java 进制转换的方法

java 取出文本文件中空行的实例代码

java 实现约瑟夫环的实例代码

java中使用sax解析xml的解决方法

java实现哈弗曼编码与反编码实例分享(哈弗曼算法)

java中计算字符串长度的方法及u4E00与u9FBB的认识

java sqlserver text 类型字段读取方法

java多线程编程之向线程传递数据的三种方法

java堆栈类使用实例(java中stack的使用方法)

精品推荐
分类导航