알고리즘이란?
알고리즘의 사전적 정의는 '어떠한 문제를 해결하기 위한 여러 동작들의 모임' 입니다.
조금 더 쉽게 얘기하면 '문제를 해결하는 절차' 라고도 할 수 있습니다.
알고리즘의 조건
알고리즘이 잘 적용되었다고 볼 수 있는 조건들은 다음과 같습니다.
- 입력 : 외부에서 제공되는 자료가 0개 이상 존재해야 한다.
- 출력 : 적어도 2개 이상의 서로 다른 결과를 내야 한다.
- 명확성 : 수행과정은 무엇을 하기 위한 것인지 명확하게 정의되어야 한다.
- 유한성 : 알고리즘의 명령어대로 수행했을 때 처리된 후 종료되어야 한다.
- 효율성 : 모든 과정은 명백하게 실행가능한 것이어야 한다.
구현
알고리즘 개발의 정형적인 단계이다.
문제 정의 -> 모델 고안 -> 명세 작성 -> 설계 -> 검증 -> 분석 -> 구현 -> 테스트 -> 문서화
분류
- 구현 : 재귀적 알고리즘, 연역적 알고리즘, 결정론적 알고리즘, 근사 알고리즘 등
- 설계 : 무차별 대입 공격, 분할 정복 알고리즘, 그래프 순회, 백트래킹 등
- 최적화 문제 : 선형 계획법, 동적 계획법, 탐욕 알고리즘, 휴리스틱 함수 등
- 이론적 분양 : 검색 알고리즘, 정렬 알고리즘, 수치 알고리즘, 그래프 알고리즘 등
참고
https://ko.wikipedia.org/wiki/%EC%95%8C%EA%B3%A0%EB%A6%AC%EC%A6%98
https://opentutorials.org/course/2471/13912