Algorithm
- 문제 해결 절차를 체계적으로 기술한 것 (입력으로부터 출력을 만드는 과정 기술)
바람직한 알고리즘
1. 명확성
2. 효율적
3. 간결성
알고리즘 입출력의 예
e.g.입력 : 100개의 변수 (배열) x[1].x[2] ...x[100] , 출력 : x[1], x[2], ...x[100] 중 최대값
maxScore(x[], n)
{
x[1,...n]의 값을 차례때로 보면서 최대값을 계산;
return 위에서 찾은 최대값;
}
알고리즘 공부의 목적
1. 특정한 문제를 해결하기 위한 알고리즘 습득
2. 체계적 생각 훈련
- 문제자체를 해결하는 알고리즘 학습
- 그 과정에 깃든 '생각하는 방법' 배우는게 중요
3. 미래에 다른 문제를 해결하는 생각의 빌딩블록 제공
- 지적 추상회의 레벨 상승
- 연구나 개발에 있어 정신적 여유를 유지하기 위해
알고리즘 수행시간
- for 루프의 반복, 문장이 수행되는 횟수, 함수의 호출 횟수...
- 상수 시간 비례, n에 비례, n^2에 비례, n^3에 비례
'Computer Science' 카테고리의 다른 글
Computer Science - [Handling combined exclusive sets] (0) | 2023.01.11 |
---|---|
Computer Architecture - [CPU] (0) | 2022.12.18 |
Computer Architecture - [RAM] (0) | 2022.12.18 |
Computer Architecture - [VGA] (0) | 2022.12.17 |
Computer Architecture - [GPU] (1) | 2022.12.17 |