2016-06-27 3 views
1

시간 복잡도

int n = some arbitrary number 
int[] array = new int[n]; 

시간 필요한 선형 (O (N)) 또는 정수 (O (1))?
내가 보았습니다 in the javadocs 예 : here StackOverflow에 있지만 모든 게시물 내가 본 동적 할당을했기 때문에 답변을 찾지 못했습니다. 당신이 int의 새로운 배열을 만들 때 초기화 따라서 O를 복용, 값 0n 할당을 수 있도록 자바에서

+1

가이 링크를 체크 할 수있다 http://stackoverflow.com/questions/5640850/java-whats-the-big- O-time-of-declaration-of-size-n – Razib

+0

도움이 razib, 감사합니다 ... – Fynn

+0

난 그냥 전에 그것을 찾지 못했습니다 ... 내가 질문을 삭제해야합니다 (그것의 복제 후 모든) – Fynn

답변

0

, 배열의 모든 구성원이, ('0') INT의 초기 값을 받아야합니다 (엔).

또한 다른 N의로, 다음 코드를 사용하여, 그것을 확인할 수 있습니다

public static void main(String[] args) 
{ 
    int n = 1000000; 
    int numSamples = 10000; 
    long sumTime = 0; 
    for (int i = 0; i < numSamples; i++) 
    { 
     sumTime += test(n); 
    } 
    double average = sumTime/(double) numSamples; 
    System.out.println(average); 
} 

private static long test(int size) 
{ 
    long start = System.currentTimeMillis(); 
    int[] a = new int[size]; 
    return System.currentTimeMillis() - start; 
} 
+0

하지만 OP는 '동적이지 않습니다'라고 말합니다. 컴파일러는 '정적'키워드 또는 클래스 로더를 표시하지 않기 때문에 그냥 추측합니다. – Marichyasana

+0

테스트 결과 O (n)인지 확인합니다. 샘플 테스트 코드 추가. –