알고리즘 편집하기

IT위키

경고: 로그인하지 않았습니다. 편집을 하면 IP 주소가 공개되게 됩니다. 로그인하거나 계정을 생성하면 편집자가 사용자 이름으로 기록되고, 다른 장점도 있습니다.

편집을 취소할 수 있습니다. 이 편집을 되돌리려면 아래의 바뀐 내용을 확인한 후 게시해주세요.

최신판 당신의 편집
3번째 줄: 3번째 줄:


== 알고리즘의 조건 ==
== 알고리즘의 조건 ==
=== 알고리즘의 특정 ===
* 입력: 0개 이상의 입력을 받는다.
* 입출력: 0개 이상의 입력을 받으며 1개 이상의 출력을 생성한다.
* 출력: 1개 이상의 출력을 생성하며, 입력에 따라 2개 이상의 서로 다른 결과가 나와야 한다.
* 명확성: 수행 과정은 명확하고 모호하지 않아야 한다. 언어 변경이 수월해야 한다.
* 유한성(종결성): 한정된 수행 후 한정된(유한한) 시간 내에 종결되어야 한다.
* 유한성(종결성): 한정된 수행 후 한정된(유한한) 시간 내에 종결되어야 한다.
* 명확성: 수행 과정은 명확하고 모호하지 않아야 한다. 언어 변경이 수월해야 한다.
* 유효성: 모든 명령들은 오류가 없이 실행 가능해야 한다.
* 효율성: 모든 과정은 명백하게 실행 가능한 수준이어야 한다.
* 효율성: 모든 과정은 명백하게 실행 가능한 수준이어야 한다.
=== 알고리즘의 선택 기준 ===
* 정확성
* 효율성
* 적합성: 목표시스템의 SW와 HW에 호환되고, 적합하게 적용될 수 있어야 한다.
== 알고리즘 생성 절차 ==
* 알고리즘 설계
* 포현
* 정확성 검증
* 효율성 분석


== 알고리즘 평가 ==
== 알고리즘 평가 ==
25번째 줄: 13번째 줄:
;적당한 입력에 대해서 유한 시간내에 올바른 답을 산출하는가를 판단
;적당한 입력에 대해서 유한 시간내에 올바른 답을 산출하는가를 판단


=== [[시간 복잡도|시간 복잡도(Time Complexity)]] ===
=== 시간 복잡도(Time Complexity) ===
* 최악의 경우를 분석
* 최악의 경우를 분석
* 최적의 경우를 분석
* 최적의 경우를 분석
* 모든 경우를 분석
* 모든 경우를 분석
* 평균치 분석
* 평균치 분석
* [[점근적 표기법|점근적 표기법(Asymptotic notation)]]
** 최상의 경우 : [[오메가 표기법|오메가 표기법 (Big-Ω Notation)]]
** 평균의 경우 : [[세타 표기법|세타 표기법 (Big-θ Notation)]]
** 최악의 경우 : [[빅오 표기법|빅오 표기법 (Big-O Notation)]]


=== 공간 복잡도(Space Complexity) ===
=== 공간 복잡도(Space Complexity) ===
IT위키에서의 모든 기여는 크리에이티브 커먼즈 저작자표시-비영리-동일조건변경허락 라이선스로 배포된다는 점을 유의해 주세요(자세한 내용에 대해서는 IT위키:저작권 문서를 읽어주세요). 만약 여기에 동의하지 않는다면 문서를 저장하지 말아 주세요.
또한, 직접 작성했거나 퍼블릭 도메인과 같은 자유 문서에서 가져왔다는 것을 보증해야 합니다. 저작권이 있는 내용을 허가 없이 저장하지 마세요!
취소 편집 도움말 (새 창에서 열림)