java는 간단한 demo 실례를 사용하여 최적화 알고리즘의 강함을 알려준다
즉, 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;
}
우리는 데모를 써서 그들의 차이를 테스트할 수 있다
/**
*
*/
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);
}
}
메인 방법의value값을 바꾸어 그들이 소모하는 시스템 시간을 테스트할 수 있습니다...물론 서로 다른 기계의 운행 결과는 다르다.
내 기계 운행 상황:
[1] [10000000] : [24]ms, :50000005000000
[1] [10000000] : [0]ms, :50000005000000
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
38. Java의 Leetcode 솔루션텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.