어떤 응용 프로그램에 어느 클래스가 더 좋을지 결정하는 한 가지 방법은 둘 다 시도해 보고 각각 얼마나 걸리는지 알아보는 것이다. 이러한 접근법을 프로파일링(profiling)이라고 하는데, 여기에는 몇 가지 문제점이 있다. 알고리즘을 비교하려면 사전에 그것을 모두 구현해봐야 한다. 결과는 사용하는 컴퓨터의 성능에 의존한다. 한 알고리즘이 어떤 컴퓨터에서는 더 좋을 수 있지만, 다른 알고리즘은 다른 컴퓨터에서 더 좋을 수도 있다. 결과는 문제 크기나 입력으로 사용하는 데이터에 의존하기도 한다. 알고리즘 분석(analysis of algorithm)을 사용하여 이러한 문제점을 해결할 수 있다. 알고리즘 분석은 그것을 구현하지 않고도 알고리즘을 비교할 수 있게 한다. 하지만 몇 가지 가정을 해야만 한다. 컴..
알고리즘 & 문제/알고리즘 분석
>>>>>>> 소스코드.git 자바 interface 자바 interface는 메서드 집합을 의미한다. java.lang 패키지에 정의된 Comparable interface의 소스코드는 다음과 같다. public interface Comparable { public int compareTo(T o) } 이 interface는 타입 파라미터인 T를 사용하여 Camparable이라는 제네릭 타입을 정의한다. 이 interface를 구현하려면 클래스는 다음과 같아야 한다. T 타입을 명시해야 한다. T 타입의 객체를 인자로 받고 int를 반환하는 compareTo() 메서드를 제공해야 한다. List interface JCF(Java Collection Framework)는 List라는 interface를 ..