본문 바로가기
소프트웨어자료/자료구조 & 알고리즘

[Algorithm] 알고리즘이란? (pseudo code 설명)

by SuperMemi 2020. 3. 16.
반응형

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

https://velog.io/@dvmflstm/RecoFashion-%EC%95%8C%EA%B3%A0%EB%A6%AC%EC%A6%98-%EA%B5%AC%EC%83%81-%EB%B0%8F-%EA%B2%80%EC%A6%9D-42k342kgtu

반응형