알고리즘의 조건 | |
---|---|
입력 | 0개 이상의 데이터 입력이 있어야 한다. |
출력 | 적어도 하나 이상의 결과를 출력해야 한다.(결과물이 있어야한다.) |
명확성 | 각 단계와 명령은 모호하지 않고 명확해야 한다. |
유한성 | 유한한 단계를 거친 후에는 반드시 종료해야 한다.(너무 긴 시간이 걸린다면 알고리즘 사용이 소용없음) |
유효성 | 각 명령어들은 실행 가능해야 한다. |
프로그램의 성능에 많은 영향
개개의 연산을 빠르게 하도록 하는 것보다는 빠른 알고리즘을 찾는 것이 우선
알고리즘 설계 후 자원(소요시간, 메모리, 통신대역 등)을 얼마나 소모하는지 분석이 필요
👉 프로그램을 분석하는 목적
작성된 프로그램의 수행시간을 예측하고 확인
좀 더 빠른 시간에 수행할 수 있는 프로그램을 작성할 수 있도록 하기 위함
👉 프로그램의 수행 시간 계산 - 알고리즘의 종류
최악의 경우 분석(Worst-case Analysis) → 가장 의미 있는 분석방법
평균의 경우 분석(Average-case Analysis)
최선의 경우 분석(Best-case-Analysi)