java 使用简单的demo实例告诉你优化算法的强大
作者:互联网
2025-08-17
这里的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.ba**i*du.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.ba**i*du.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
相关标签:
相关推荐
专题
+ 收藏
+ 收藏
+ 收藏
+ 收藏
+ 收藏
+ 收藏
最新数据
相关文章
【从0到1构建一个ClaudeAgent】并发-后台任务
MyBatis、MyBatis-Plus、JPA、MyBatisGX 写法比较:同一个需求,四种解法
java2AI系列:SpringAI 通过 Function Calling 接入外部系统
Java 通用树形结构构建与解析工具类解析
深度剖析:Java 并发三大量难题 —— 死锁、活锁、饥饿全解
别再重复造轮子了!SpringBoot对接第三方系统模板,拿来即用
Spring AI 核心原理解析:基于 1.1.4 版本拆解底层架构
华为 IODT 设备接入
自定义跨字段校验必填注解
别再System.out了!这份SpringBoot日志优雅指南,让你告别日志混乱
AI精选
