알고리즘/개념정리

[개념정리(1)] 알고리즘의 이해

vell_zero 2021. 10. 3. 14:31

1.알고리즘(algorithm)

  • 문제를 해결하기 위한 여러 동작들의 모임
  • 어떤 기능이 일어나기 위해 내재된/독립된 단계적 명령어들의 집합

1) 알고리즘의 조건

  • 입력 : 외부에서 제공되는 자료가 0개 이상 존재
  • 출력 : 적어도 2개 이상의 서로 다른 결과 도출
  • 명확성 : 모호하지 않은 명령어로 구성되며 수행 과정이 명확해야 함 (→ 정밀/유일성)
  • 유한성(종결성) : 유한 번의 명령어를 수행 후(유한 시간 내) 종료
  • 효율성 : 모든 과정은 명백하게 실행가능(검증가능) 한 것이어야 한다. (=타당성)

2) 알고리즘 전략세우기(Pseudo-code)

  • 일반적인 알고리즘 순서
    ① 문제 정의 → ② 모델 고안 → ③ 명세 작성 → ④ 설계 → ⑤ 검증 → ⑥ 분석(복잡도 등) → ⑦ 구현 → ⑧ 테스트 → ⑨ 문서화
  • 자연어 ↔ 프로그래밍 언어 사이의 방식을 단계별로 기록
  • ⅰ. 프로그램의 진행 과정에 조금이라도 관심이 있는 사람이라면, 이 의사 코드를 읽고 이해할 수 있을까?
    ⅱ. 이 의사 코드는 실제 코드로 쉽게 바뀔 수 있을까?
    ⅲ. 과정을 진행하는데 필요한 단계 중, 빠뜨린 것은 없나?
    ⅳ. 의사 코드를 읽는 사람들이 이해할 수 있는 용어들을 사용했는가?

'알고리즘 > 개념정리' 카테고리의 다른 글

최소신장트리(MST) & (크루스칼 vs 프림)  (0) 2021.10.23
[개념정리(3)] DFS와 BFS  (0) 2021.10.03
[개념정리(2)] 백트래킹  (0) 2021.10.03