본문 바로가기
문제해결(PS)/자료구조&알고리즘

의사코드(수도코드)

by YS_LEE 2020. 4. 6.
반응형

장점

  • 코드 검토, 수정에 용이함
  • 간결하며 좋은 코드가 작성된다.

문법

(사실 의사코드는 정해진 표준은 없다)

 

제어(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