분류 전체보기
-
시간복잡도(Time Complexity) 정리algorithm 2013. 4. 18. 11:36
Time Complexity알고리즘의 시간복잡도(Time Complexity)란 함수가 입력된 값을 처리하는데 걸리는 시간을 측정한 값을 의미함.일반적으로 Big O 기호를 사용하여 표혐함.이때, 시간 복잡도의 입력값 크기는 점근적(asymptotically)으로 증가해서 결국 무한대까지갈 수 있음.시간 복잡도의 측정방법은 알고리즘이 수행하는 기본적인 연산이 몇 개 인지를 세어서 확인함. 표기기호Big O(O) : 상한(upper bound)을 의미함.Big Omega(Ω) : 하한(lower bound)을 의미함.Big Theta(Θ) : Big O 와 Big Omega가 같을 때를 의미함. 일반적인 시간복잡도 정리표명칭복잡도 수준실행시간(T(n))실행시간 예예제 알고리즘constant time(상수시..
-
행위패턴 : Visitor 패턴디자인패턴 2013. 3. 27. 09:00
분류 : 행위패턴(Behavioral Patterns) 정의 : 객체 구조에서 기능을 분리하는 패턴. 기존 객체의 구조를 수정하지 않고 새로운 기능을 추가할 수 있음. 용도 : 소스 public interface CarElementVisitor { void visit(Wheel wheel); void visit(Engine engine); void visit(Body body); void visit(Car car); } public interface CarElement { void accept(CarElementVisitor visitor); // CarElements have to provide accept(). } class Body implements CarElement { public void a..
-
행위패턴 : Template Method 패턴디자인패턴 2013. 3. 25. 09:00
분류 : 행위패턴(Behavioral Patterns) 정의 : 메소드에서 알고리즘의 뼈대를 정의하는 패턴. C++의 Template하고는 상관 없음. 용도 : 코드에서의 중복을 피하기 위해서임. 공통적인 작업흐름은 추상클래스쪽에 한번 정의하고, 나머지 다양한 구현들은 각각의 서브클래스들에서 담당함. 소스 /** * An abstract class that is common to several games in * which players play against the others, but only one is * playing at a given time. */ abstract class Game { protected int playersCount; abstract void initializeGame()..
-
행위패턴 : Strategy 패턴디자인패턴 2013. 3. 18. 09:00
분류 : 행위패턴(Behavioral Patterns) 정의 : 알고리즘의 동작이 실행시에 결정되는 패턴. 알고리즘의 집합을 정의하고 각각을 캡슐화 한 다음 해당 알고리즘들을 교환가능하게 만듬. 용도 : 입력 데이터의 검증을 수행할때 데이터의 타입에 따라 검증 알고리즘을 선택하도록 함. 소스 /** The classes that implement a concrete strategy should implement this. * The Context class uses this to call the concrete strategy. */ interface Strategy { int execute(int a, int b); } /** Implements the algorithm using the strateg..
-
행위패턴 : State 패턴디자인패턴 2013. 3. 11. 09:00
분류 : 행위패턴(Behavioral Patterns) 정의 : 객체의 상태에 따라 동일 루틴에서 다른 행동을 하는 패턴 용도 : 소스 interface Statelike { /** * Writer method for the state name. * @param STATE_CONTEXT * @param NAME */ void writeName(final StateContext STATE_CONTEXT, final String NAME); } public class StateA implements Statelike { /** (non-Javadoc) * @see state.Statelike#writeName(state.StateContext, java.lang.String) */ @Override publ..
-
행위패턴 : Observer 패턴디자인패턴 2013. 3. 4. 09:00
분류 : 행위패턴(Behavioral Patterns) 정의 : observer(옵저버, 관찰자)라고하는 종속성 목록을 관리하고, 목록에 속한 객체들에게 상태 변화를 통지하는 객체를 이용하는 패턴. 용도 : 분산 이벤트 핸들링 시스템에서 주로 사용됨. MVC(Model-View-Controller) 아키텍처 패턴에서 중용한 역할을 함. 소스 import java.util.Observable; //Observable is here import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; public class EventSource extends Observable implements Runnable..
-
행위패턴 : Memento 패턴디자인패턴 2013. 2. 28. 10:27
분류 : 행위패턴(Behavioral Patterns) 정의 : 객체의 이전 상태를 저장하는 기능을 제공하는 패턴. 용도 : originator와 caretaker 두개의 객체로 구현됨. originator : 내부 상태를 가지고 있는 객체. caretaker : originator에 어떤 행위를 하지만 변경사항을 되돌릴수 있는 기능이 있음. 소스 import java.util.List; import java.util.ArrayList; class Originator { private String state; // The class could also contain additional data that is not part of the // state saved in the memento. public ..