본문 바로가기

개발(합니다)/컴퓨터 일반&CS

알고리즘이란

반응형

알고리즘

: 컴퓨터가 명령어를 처리하는 일련의 과정을 작성하는 행위
: 문제 해결을 위해 순서를 정하고 컴퓨터에게 명령하는 행위
: 입력에 의한 데이터를 가공하여 원하는 출력 형태로 만드는 행위

-> 컴퓨터가 문제를 해결하고 답을 얻기 위한 방법을 순서대로 작성하는 행위입니다.

알고리즘의 목적

: 기계를 이용하여 문제를 해결합니다.


알고리즘의 어원

: 9세기 알고리즈미의 이름에서 유래되었습니다.

알고리즘의 조건

- 입력과 출력 : 입력은 0개 이상이며 출력은 1개 이상이어야 한합니다.
- 유한성 : 작업이 끝이 나야 합니다.
- 명확성 : 명령의 단계는 단순 명확하고 모호하지 않아야 합니다.
- 유효성 : 모든 명령은 실행 되어야 합니다.
- 일반성 : 특정 값이 아닌 모든 문제에 적용 할 수 있어야 합니다.

알고리즘 표현

- 일상 언어
- 의사 코드 : 슈도코드 - 알고리즘을 우리말로 작성함
- 프로그래밍 언어 : c, java 등

알고리즘 효율성 분석

1. 컴퓨터 자원의 한계 : 테트리스도 버거워하던 시절이 있었습니다.
2. 효율성 구분
- 계산 시간 : 시간 복잡도 - 알고리즘의 연산의 수
- 소요 메모리 : 공간 복잡도 - 소요 되는 컴퓨터 메모리
3. 효율성 척도 : 계산 복잡도 - 주로 시간 복잡도를 대상으로 합니다.
4. 분석 대상 : 문제의 크기(입력)에 따라 복잡도(시간,공간)의 증가분
5. 표기 방법 : 수행 시간을 n으로 하여 f(n)으로 표현합니다.

알고리즘 정확성 분석

1. 항상 올바르게 작동하는지 수학적으로 증명 : 추론에 대한 타당성을 검증

알고리즘을 잘하려면

: 컴퓨터의 입장에서 생각하는 사고 방식이 필요합니다.
: 컴퓨터는 규칙이 있는 반복적인 행위를 분기를 통해 처리합니다.
: 좋은 알고리즘을 습득합니다.


반응형