Javascript
(Javascript) 알고리즘
JJeongHyun
2023. 1. 16. 20:20
반응형
알고리즘
- 어떤 문제를 해결하기 위한 일련의 절차나 방법을 공식화한 형태로 표현한 것
- 특정 작업을 수행하기 위한 프로세스 또는 일련의 단계. 프로그래밍과 관련된 대부분의 것들은 항상 일종의 알고리즘을 포함
- 문제 해결을 위한 기초적인 과정
- 제한된 공간과 시간 안에서 데이터를 어떻게 처리할 것인지를 정해놓은 로직(주어진 input으로 정의된 계산을 수행한 뒤 output을 내는 것)
- 조건
- 입력, 출력, 명확성, 유한성, 효율성
- 입력 : 하나 이상의 데이터를 입력받는다. (매개변수)
- 출력 : 2개 이상의 다른 결과가 있어야한다. (return)
- 명확성 : 과정이 명확하고 모호하지 않은 명령어로 되어야 한다.
- 유한성(종결성) : 알고리즘이 끝이 나야 한다. 무한대로 실행된다면 유한성에 성립하지 않아 알고리즘이 아니다
- 효율성 : 실행이 가능해야 한다. 검증이 된다 라고 말할 수 있다
- 입력, 출력, 명확성, 유한성, 효율성
- 시간복잡도(big O 표기법) : 알고리즘이 끝날 때까지의 시간을 표기
- O(1) : 한번 실행된다.
- O(log n) : n로그 만큼 실행된다.
- O(n) : n번 알고리즘이 실행된다
- O(nlog n) : n * log n 만큼 실행된다
- O(n^2) : n의 제곱만큼 실행된다
- O(2^n) : 2의 n 제곱만큼 실행된다
- O(n!) : n!(n 팩토리얼) 만큼 실행된다