'알고리즘'에 해당되는 글 2건

알고리즘의 성능분석은 어떻게 하는 것일까?

 

만약 기존에 있는 알고리즘을 개선해서 어떠한 알고리즘을 새로 만들었고,

알고리즘이 내 PC에서 결과가 나오는데 까지 2초가 걸렸다고 주장한다면, 그 주장을 믿을 수 있는 것일까?

현실적으로 서로 다루는 PC의 사양과 환경, 소프트웨어 등이 전부 다르므로 알고리즘을 정확히 측정하기 힘들다.

 

이를 공정하게 비교하기 위해서 점근적 표기법을 사용한다.

 

점근적 표기법은 3가지가 존재한다.

O-notation (빅오 표기)

Ω-notation (오메가 표기)

Θ-notation (세타 표기)

 

이 3가지 방법에 대해서는 다음 포스팅에서 알아보도록 하자

 

'알고리즘' 카테고리의 다른 글

알고리즘이란 무엇인가?  (0) 2020.04.26
블로그 이미지

디벨로퍼스

,

* 알고리즘 학습에 앞서 사전에 프로그래밍언어와 자료구조에 대해 공부를 끝 마치면 알고리즘 이해해 도움이 수월하다.

 

알고리즘은 무엇인가?

알고리즘은 유한시간내에 특정 문제를 해결하기 위한 일련의 순서적인 계산 / 풀이 절차, 실행의 집합이라고 생각할 수 있다.

 

쉽게 생각하면 우리가 일상생활에서 '라면'을 순서대로 조리하는 것도 알고리즘이라 할 수 있다.

 

1. 냄비에 물을 넣는다.

2. 냄비에 물을 가스렌지에 올린다.

3. 가스렌지 버너를 돌려 불을 켠다.

4. 라면봉지를 뜯는다.

5. 라면스프를 넣는다.

6. 면을 넣는다.

7. 면이 익으면 불을 끈다.

 

원하는 결과를 위해 이러한 순서 단계별로 진행한다. 그리고 이는 유용하다. 

이런 것을 알고리즘이라 불린다.

 

그렇다면 명확히 알고리즘의 조건(특성)은 무엇인가?

 

알고리즘의 조건(특성)으로는 5가지가 존재한다.

1. 입력: '0개 이상의 외부입력 데이터' 가 존재해야 한다.

2. 출력: '하나 이상의 결과' 가 나와야 한다.

3. 명확성: 모든 명령들은 모호하지 않고 '단순 명확' 해야 한다.

4. 유효성: 모든 명령은 '실행 가능' 해야 한다.

5. 유한성: 한정된 수의 단계 후에 '반드시 종료' 해야 한다.

 

알고리즘의 구조(요소)로는 3가지가 존재한다.

1. Sequence: 순차적으로 프로그램 코드를 수행 한다.

2. Decision(Selection): 특정 조건에 따라 수행을 달리 한다. 

3. Repetition: 수행을 1회 이상 반복 한다.

 

 

알고리즘의 프로세스

단계 내용
문제정의 현실 세계의 문제를 컴퓨터를 이용하여 풀 수 있도록 입력과 출력의 형태로 정의
알고리즘 설명 문제를 해결하기 위한 단계를 차례대로 설명
정확성 증명 항상 올바른 답을 내고 정상적으로 종료되는지 증명
성능분석 수행시간이나 사용공간에 대한알고리즘의 성능을 비교하기 위한 분석

 

블로그 이미지

디벨로퍼스

,