알고리즘(Algorithm)
어떤 문제를 해결하기 위해 정해진 일련의 절차나 방법을 공식화한 형태로 표현한 것.
일상에서의 예시를 생각하면 이해하기 쉬운데 네이버로 출발지와 도착지를 선택해 경로를 찾아 주는 것과 음식을 만드는 방법 등도 알고리즘에 속한다.
1. 알고리즘의 조건
- 입력 : 외부에서 제공되는 자료가 0개 이상 존재해야 한다.
- 출력 : 최소 하나 이상의 결과값이 나와야 한다.
- 명확성 : 각 단계는 명확한 명령어로 구성되어야 하고, 모든 과정은 실행 가능한 것이어야 한다.
- 유한성 : 명령어대로 수행했을 때 주어진 값이 처리된 후 종료되어야 한다.
- 효과성 : 시간적, 공간적 효율성을 가져야 한다.
2. 좋은 알고리즘의 조건
- 이해하기 쉬워야 한다.
복잡한 알고리즘은 유지보수가 어렵고, 협업 시 소통의 어려움 등 문제가 발생할 수 있다.
- 빠른 속도 (시간적 효율성)
실행부터 결과가 도출될 때까지의 시간이 짧을수록 좋다.
- 효율성 (공간적 효율성)
차지하는 메모리의 양이 적을수록 좋다. 하지만 속도와 메모리의 용량 중 우선순위를 두자면 속도.
- 재이용 가능성
기존의 프로젝트뿐만 아니라 새로운 프로젝트에서도 사용 가능하다면 좋은 알고리즘이다.
'Backend > 기타' 카테고리의 다른 글
| [에러] Interceptor 설정 에러 : The prefix "mvc" for element "mvc:interceptors" is not bound (0) | 2024.06.03 |
|---|---|
| JUnit 단위 테스트 (0) | 2024.06.03 |
| [서버 에러]server tomcat v8.5 server at localhost failed to start. (0) | 2024.06.02 |
| <url-pattern> (0) | 2024.05.31 |
| [Spring] 한글깨짐 에러 (0) | 2024.05.31 |