Post

알고리즘

이전 포스트까지는 컴퓨터가 입력을 처리하는 방식에 대하여 서술하였다. 그렇다면 컴퓨터는 입력받은 정보를 어떻게 출력할까?

알고리즘

알고리즘은 input을 output으로 바꾸기 위한 문제를 해결하는 단계적(절차적,순서적)인 방법이다. 같은 output이더라도 어떤 알고리즘을 사용하느냐에 따라서 시간복잡도가 다를 수 있다. 따라서 알고리즘에서 중요한 것은 정확성효율성이다.

의사코드(pseudo code)

의사코드는 알고리즘의 진행과정을 언어로 표현한 것이다. 예를 들어, 방안에 있는 사람을 한 명씩 세는 방식으로 사람의 수를 센다면

1
2
3
1. Let N(the number of people) = 0
2. For each person in room:
3.        N = N + 1

이러한 알고리즘을 의사코드로 나타낼 수 있다. 있다. 이 알고리즘은 정확성은 있지만 효율성을 떨어진다는 점이 있다.

1
2
3
1. Let N(the number of people) = 0
2. For pair person in room:
3.        N = N + 2

이 알고리즘은 방 안의 사람들을 두 명씩 짝지어서 사람의 수를 세는 방식이다. 효율성은 전자보단 낫지만 정확성은 떨어진다. 왜냐하면 방 안에 3명의 사람이 있다면 이 알고리즘으로는 2명만 셀 수 있고 나머지 1명은 셀 수 없기 때문이다.

1
2
3
4
5
1. Let N(the number of people) = 0
2. For each person in room:
3.        N = N + 2
4. For each person in room:
5.          N = N + 1

이 알고리즘은 첫 번째 알고리즘의 효율성과 두 번째 알고리즘의 정확성을 보완한 알고리즘이라 할 수 있다.

의사코드를 구성하는 요소로는

  1. 함수 : 주로 동사
  2. 조건 : 여러 선택지 중에 하나를 고르는 것
  3. boolean : 답이 참과 거짓으로 나오는 질문
  4. 반복
  5. 변수 : 사람의 수와 같이 값이 변화하는 것
  6. 쓰레드
  7. 이벤트 등이 있다.
This post is licensed under CC BY 4.0 by the author.

Comments powered by Disqus.