알고리즘은 컴퓨터가 특정 작업을 수행하도록 만드는 '레시피'다. 요리를 해본 적이 있다면, 알고리즘을 이미 이해하고 있는 셈이다!
다음은 팬케이크 레시피다:
이 레시피는 순차적으로 수행해야 하는 일련의 단계로 구성된다. 알고리즘도 이와 비슷하지만, 요리사가 아닌 컴퓨터가 수행할 명령어로 이루어져 있다.
재료들—밀가루, 우유, 달걀, 버터—은 알고리즘이 처리하는 데이터다. 데이터는 한 형태(생재료, 분리된 재료)로 알고리즘에 들어가고, 다른 형태(맛있는 팬케이크!)로 나온다.
그렇다면 자료구조는 무엇인가? 자료구조는 알고리즘이 데이터를 처리하는 동안 데이터를 담아두는 그릇이다. 팬케이크 레시피에서 자료구조는 밀가루를 담는 봉지, 모든 재료를 섞는 믹싱 볼, 팬케이크를 익히는 프라이팬, 그리고 완성된 팬케이크를 담는 접시다.