(Image from ResearchGate)
의사코드 (pseudo-code)란 일반적인 언어를 코드처럼 사용하여 알고리즘을 나타낸 코드입니다.
알고리즘을 사용하기 전에 대략적으로 어떻게 진행될 지 작성해보는 것이죠.
의사코드이기 때문에 실제로 코드가 돌아가지는 않아요.
의사코드는 자연어의 장점과 프로그래밍 언어의 장점 모두 가지고 있습니다.
우리가 인식하기 편하면서도, 알고리즘을 한 눈에 들여다 볼 수 있죠.
특정 언어의 문법에 편중되지 않고 알고리즘을 작성할 수 있습니다.
선택 정렬을 예시로 들어보겠습니다.
c언어로 구현하면 이렇게 됩니다.
int n;
int min;
int temp;
int arr[n];
for (int i = 0; i < n - 1; i++)
{
min = i;
for (int j = i + 1; j < n; j++)
{
if (arr[j] < arr[i]) min = j;
}
temp = arr[i];
arr[i] = arr[min];
arr[min] = temp;
}
의사코드로 구현하면 이렇게 됩니다.
Alg SelectSort(A, n)
input array A[n]
output selection sorted array A
1. min <- 0
2. for i <- 0 to n - 1
min <- i
for j <- i + 1 to n
if A[j] < A[i]
j <- i
swap (A[j], A[i])
3. return A
이렇듯 의사코드를 쓰면 한 눈에 알고리즘을 알아볼 수 있습니다.