반응형
장점
- 코드 검토, 수정에 용이함
- 간결하며 좋은 코드가 작성된다.
문법
(사실 의사코드는 정해진 표준은 없다)
제어(control flow)
if (exp) …
[elseif (exp) …]*
[else …]
for var <- exp1 to|downto exp2
…
for each var Î exp
…
while (exp)
…
do
…
while (exp)
주의: 들여쓰기(indentation)로 범위(scope)를 정의
연산(arithmetic)
치환(assignment)
=, <, <=, >, >= 관계 연산자
&, ||, ! 논리 연산자
s1 ≤ n2 첨자 등 수학적 표현 허용
메소드(method) 정의, 반환, 호출
Alg method([arg [, arg]*])
…
return [exp [, exp]*]
method([arg [, arg]*])
주석(comments)
input …
output …
{This is a comment}
예시 코드
Alg arrayMax(A, n)
input array A of n integers
output maximum element of A
{operations count}
1. currentMax <- A[0] {IND, ASS 2}
2. for i <- 1 to n – 1 {ASS, EXP 1 + n}
if (A[i] > currentMax) {IND, EXP 2(n – 1)}
currentMax <- A[i] {IND, ASS 2(n – 1)}
{increment counter i} {EXP, ASS 2(n – 1)}
3. return currentMax {RET 1}
{Total 7n – 2}
( <- )는 대입연산자(=)이다. (그대신 비교연산자 ==는 =이다.)
(자료구조 강의를 듣고 강의노트를 정리하였음.)
반응형
'문제해결(PS) > 자료구조&알고리즘' 카테고리의 다른 글
[C언어] 버블정렬(Bubble Sort) (0) | 2020.10.26 |
---|