Algorithm. 알고리즘.
A finite set of instructions that accomplishes a certain task.
즉, 어떤 과제를 이뤄내기 위해 진행하는 도구 또는 과정의 집합 정도로 이해하자.
알고리즘 특징(criteria).
- input / output 존재.
- Definiteness : clear, unambiguous (명확하게 만들어야함. 컴퓨터는 애매모호한 것을 모른다.)
- Finiteness : termination (모든 경우 끝에는 종료가 되어야한다.)
- Effectiveness : feasible (실현가능하게 만들어야 한다.)
알고리즘 표현 방법(specification).
- 자연어
- Diagram (e.g. flow chart)
- Pseudo code (가독성이 높고 문법에서 자유롭기 때문에 어느 언어로도 적용가능)
- Programming language
- etc..
Pseudo code
- pseudo code란 프로그래밍 언어는 아니지만 유사한 모양으로 알고리즘의 원리를 설명할때 사용가능.
- 장점 : 각 프로그래밍 언어별로 다른 문법에서 자유로움.
- 단점 : 알고리즘의 criteria를 충족하지 못할 수도 있음.
- pseudo code 구문
Assignment : <-, =, :=
제어문 :
if-then-else
for i <- 1 to n [by 1] {...} // for(i=1; i<=n; i++){...}
for i <- n to 1 by -1 {...} // for(i=n; i>=1; i--){...}
while(condition){...}
do {...} while(condition)
loop{...} end loop // termination condition in the loop body.
case // c언어 switch 문
Block of statements : {...}, begin... end, if... endif, for... endfor, while ... endwhile.
예제.
: 배열 A[0...n-1]에 저장된 n개의 수 중 양수의 개수와 그 합 구하기.
1. c언어 코드
// C 언어로 알고리즘 쓰기.
sum = 0;
count = 0;
for(i=0; i<n, i++){
if(A[i] > 0){
sum += A[i]
count++;
}
}
2. Pseudo code
// Pseudo code
sum <- 0 // sum = 0, sum := 0도 가능.
count <- 0
for i <- 0 to n-1 do{ // {}를 안쓰고 들여쓰기만으로도 가능.
if(A[i] > 0) then{
sum <- sum + A[i]
count <- count + 1
}
}
출처
CAU DBLab
'소프트웨어자료 > 자료구조 & 알고리즘' 카테고리의 다른 글
Linked list (연결 리스트) 란 무엇인가? (0) | 2020.05.21 |
---|---|
[자료구조] 순환 알고리즘 (이원 탐색, 순열 생성) (0) | 2020.04.13 |
[자료구조] Binary search (with Recursion(재귀) pseudo code) 예제. (0) | 2020.03.17 |
[자료구조] Selection Sort ( with pseudo code) 해보기. (0) | 2020.03.16 |
자료구조란 무엇인가? (개요) (0) | 2020.03.16 |