알고리즘

안아림·2021년 8월 9일
0

CS50

목록 보기
10/31
post-thumbnail

알고리즘

개요

알고리즘이란 입력값을 출력값의 형태로 바꾸기 위해 어떤 명령들이 수행되어야 하는지에 대한 규칙들의 순서적 나열입니다. 이러한 일련의 순서적 규칙들의 나열 방법에 따라 알고리즘의 종류가 달라집니다. 같은 출력값이라도 알고리즘적 순서나열에 따라 출력값에 도달하는 시간은 서로 다를 수 있습니다.

정확한 알고리즘 (정확성)


알고리즘을 평가할 때는 정확성도 중요하지만, 효율성도 중요합니다. 효율성은 작업을 완료하기까지 얼마나 시간과 노력을 덜 들일 수 있는지에 대한 척도입니다.

효율적인 알고리즘 (효율성)

더 직관적이고 효율적인 알고리즘이 뭐가 있을지 생각해봅시다.

먼저, 전화번호부 가운데를 펴고, 만약 Mike Smith가 그 페이지에 있다면 알고리즘은 끝납니다. 없다면 전화번호부가 이름순으로 정렬되어 있으므로 Mike Smith가 지금 페이지보다 앞부분에 있는지 뒷부분에 있는지 알고 있습니다. 그러므로 책의 절반을 버릴 수 있게 되고 나머지 절반에 대해 똑같은 알고리즘을 수행합니다. 한 페이지가 남을 때까지 계속 수행합니다. 마지막에 남은 한 페이지에는 Mike Smith의 이름이 있거나 없거나 둘 중 하나일 겁니다.

profile
개발 블로그

0개의 댓글