목록2021/05/21 (2)
알고리듬을 평가하는 두가지 기준 1. 시간 : 알고리듬의 수행 속도의 특성을 분석 2. 공간 : 알고리듬의 메모리 사용 특성을 분석 -> 시간이 빠르면서 메모리도 더 적게 사용하는 알고리듬이 이상(理想)! BUT! 두 기준은 서로 상충하는 경우가 많다. 즉, 메모리 사용량을 희생해 속도를 높이거나, 속도를 희생해서 메모리 사용량을 줄여인 알고리듬들을 훨씬 자주 볼 것이다. 시간복잡도 분석(Time complexity) 알고리듬의 수행 속도를 측정하는 방법 1. 프로그램의 수행 시간을 측정(Timer) -> 가장 직관적인 방법이지만 하드웨어, 사용 언어, 운영체제 등 외부 요소가 시간에 영향을 미치므로 부적합! 2. 수행 시간 기준 기본적인 연산의 수 비교 (ex. 사칙연산, 대소비교, 대입연산) -> 가..
알고리듬? 어떠한 문제를 해결하기 위한 일련의 절차를 공식화한 형태로 표현한 것 ※ 좋은 알고리듬은 아래 특징을 따른다. 정밀성 : 변하지 않는 명확한 작업 단계를 가져야 한다. 유일성 : 각 단계마다 명확한 다음 단계를 가져야 한다. 타당성 : 구현할 수 있고 실용적이어야 한다. 입력 : 정의된 입력을 받아들일 수 있어야 한다. 출력 : 답으로 출력을 내보낼 수 있어야 한다. 유한성 : 특정 수의 작업 이후에 정지해야 한다. 일반성 : 정의된 입력들에 일반적으로 적용할 수 있어야 한다. 알고리듬 구현 방식? 자연어, 의사코드, 순서도, 프로그래밍 언어로 다양 알고리듬 개발의 정형적인 단계 문제 정의 → 모델 고안 → 명세 작성 → 설계 → 검증 → 분석 (복잡도 등) → 구현 → 테스트 → 문서화 즉,..