파인만 알고리즘
문제를 적는다
골똘히 생각한다.
답을 적는다.
소프트웨어를 설명할 때 음식에 만드는 레시피에 자주 비유하곤 한다. 레시피는 요리에 필요한 재료, 작업순서, 예상되는 결과를 열거한다. 이와 비슷하게 어떤 과제를 수행하는 프로그램은 연산에 필요한 데이터를 명시하고, 데이터에 대해 수행할 작업을 자세히 설명한다. 그러나 프로그램은 레시피보다 훨씬 자세해야한다.
알고리즘은 세신하고 정확하고 명료하게 작성된 레시피나 납세 신고서의 컴퓨터과학 버전이라고 할 수 있는데 결과를 정확하게 계산하도록 보장된 일련의 단계다. 각 단계는 기본 연산으로 표현되어 있으며, 연산의 의미는 완전히 명시된다. 입력된 데이터가 어떤 유형이어야 하는지도 제공해야 한다. 모든 경우의 수를 다루어야 하며, 다음에 무엇을 해야 할지 모르는 상황이 발생하면 안 된다. 추가로 멈추는 기능이 필요하다.
알고리즘의 설계, 분석, 구현은 컴퓨터과학에서도 매우 핵심적인 부분이다. 여기서는 한 가지를 아는 것이 중요하다. 알고리즘은 지능이나 상상력이 없는 개체가 수행하더라도 연산의 의미와 수행 방법에 의심의 여지가 없을 정도로 상세하고 정확하게 일련의 연산을 명시해야 한다는 것이다.
효율성의 경우 처리 데이터 양에 따라 계산에 소요되는 시간을 표현하는 방법을 말한다.