Book/자료구조와 함꼐 배우는 알고리즘 입문 - 파이썬

1. 알고리즘이란?

쟈누이 2021. 3. 30. 16:59
반응형

 

 

1. 알고리즘


어떠한 문제를 해결하기 위해 정해놓은 일련의 절차를 말한다.

 

올바른 알고리즘이란 ' 어떠한 경우에도 실행 결과가 똑같이 나와는 것 ' 을 말한다. 만약 알고리즘의 실행 결과가 어떤 경우에는 맞고 어떤 경우에는 틀리면 올바른 알고리즘이라고 할 수 없다. 

 

def max3(a,b,c):
    maximum = a

    if b > maximum: maximum = b
    if c > maximum: maximum = c

    return maximum

print(f'max3(3,2,1) = {max3(3,2,1)}')
print(f'max3(3,2,2) = {max3(3,2,2)}')
print(f'max3(3,1,2) = {max3(3,1,2)}')
print(f'max3(3,2,3) = {max3(3,2,3)}')
print(f'max3(2,1,3) = {max3(2,1,3)}')

# 어떠한 내용을 넣어도 같은 내용이 나오며
# 결과를 예측할 수 있는 알고리즘이 가장 좋은 알고리즘

 

 

 

 

2. 알고리즘의 조건


  • 입력 : 알고리즘은 0 또는 그 이상의 외부에서 제공된 자료가 존재한다.
  • 출력 : 알고리즘은 최소 1개 이상의 결과를 가진다
  • 명확성 : 알고리즘의 각 단계는 명확하여 애매함이 없어야 한다.
  • 유한성 : 알고리즘은 단계들을 유한한 횟수로 거친 후 문제를 해결하고 종료해야 한다. 알고리즘의 한 단계 이후 m의 값은 n 보다 작으며, m != 0 이면, n 의 값은 다음 번 단계에서 줄어든다
  • 효과성 : 알고리즘의 모든 연산들은 사람이 종이와 연필을 이용하여 유한한 시간 안에 수행할 수 있을 정도로 충분히 단순해야 한다

 

 

 

3. 좋은 알고리즘의 분석 기준


  • 정확성 : 적당한 입력에 대해서 유한한 시간 내에 올바른 답을 산출하는가를 판단
  • 작업량 : 전체 알고리즘에서 수행되는 가장 중요한 연산들만으로 작업량을 측정, 해결하고자 하는 문제의 중요 연산이 여러개인 경우에는 각각의 중요 연산들의 합으로 간주하거나 중요 연산들에 가중치를 두어 계산
  • 기억 장소 사용량 : 수행에 필요한 저장 공간
  • 최적성 : 그 알고리즘보다 더 적은 연산을 수행하는 알고리즘은 없는가? 최적이란 가장 '잘 알려진 ' 이 아니라 '가장 좋은' 의 의미이다. 
  • 복잡도. (점근 표기법 : Big-O Notation)

 

 

 

4. 참고 링크


opentutorials.org/course/2471/13912

 

알고리즘의 정의 - 프로그래밍 입문

알고리즘(라틴어, 독일어: Algorithmus, 영어: algorithm )이란 어떠한 문제를 해결하기 위한 여러 동작들의 모임이다. 유한성을 가지며, 언젠가는 끝나야 하는 속성을 가지고 있다. 수학과 컴퓨터 과학

opentutorials.org

ko.wikipedia.org/wiki/%EC%95%8C%EA%B3%A0%EB%A6%AC%EC%A6%98

 

알고리즘 - 위키백과, 우리 모두의 백과사전

위키백과, 우리 모두의 백과사전. 알고리즘(영어: Algorithm 앨거리듬[*], 영어 발음: /ˈælɡəˌɹɪðəm, ˈælɡəˌɹɪðm̩/ )은 수학과 컴퓨터 과학, 언어학 또는 관련 분야에서 어떠한 문제를 해결하기

ko.wikipedia.org

 

반응형